楼主: pfu186296
821 3

[统计软件与数据分析] 请问Python如何根据一列日期生成与其最近的交易日呢? [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

初中生

28%

还不是VIP/贵宾

-

威望
0
论坛币
1424 个
通用积分
67.1708
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
95 点
帖子
9
精华
0
在线时间
9 小时
注册时间
2022-4-17
最后登录
2023-12-28

楼主
pfu186296 发表于 2023-12-28 18:05:46 |AI写论文
200论坛币
Dataframe里有一列日期,有些属于交易日,有些不属于交易日。我想根据这列日期再生成一列日期,生成规则如下:

对属于交易日的行,该行新生成的日期就是原日期;

对不属于交易日的行,该行新生成的日期为原日期之前最近的交易日。

所有交易日是已知的,储存在一列series中。

请不要用for循环,因为数据很多。


关键词:python 交易日 Dataframe Series Serie

沙发
att006 发表于 2023-12-29 00:22:20
import pandas as pd  
  
# 假设有一个包含日期和交易日信息的DataFrame  
# 'date' 列包含日期信息  
# 'is_trading_day' 列是一个布尔系列,表示日期是否为交易日  
# 'trading_days' 列包含所有的交易日日期  
  
# 示例数据  
data = {  
    'date': pd.date_range(start='2023-01-01', end='2023-01-10'),  
    'is_trading_day': [True, True, False, True, False, True, False, True, False, True],  
    'trading_days': pd.date_range(start='2023-01-01', end='2023-01-05')  
}  
  
df = pd.DataFrame(data)  
  
# 使用merge函数找到每个非交易日日期之前的最近交易日  
df['nearest_trading_day'] = df.merge(df[df['is_trading_day']][['date']], how='left', on='date')  
  
# 删除不必要的列  
df = df.drop(columns=['nearest_trading_day_x'])  

print(df)

藤椅
a779669564 发表于 2023-12-31 09:44:43 来自手机
att006 发表于 2023-12-29 00:22
import pandas as pd  
  
# 假设有一个包含日期和交易日信息的DataFrame
你这个还得自己先判断是不是工作日

板凳
Killua609 发表于 2024-1-2 10:32:30
是国际认可的节假日,并非China认定的节假日

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
扫码
拉您进交流群
GMT+8, 2026-2-16 03:19