全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 悬赏大厅
822 3
2023-12-28
悬赏 200 个论坛币 未解决
Dataframe里有一列日期,有些属于交易日,有些不属于交易日。我想根据这列日期再生成一列日期,生成规则如下:

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

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

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

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


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
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)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

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

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2024-1-2 10:32:30
是国际认可的节假日,并非China认定的节假日
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群