繁体   English   中英

删除不是该月第 15 个计数日的行

[英]Remove rows that are not the 15th counted day of the month

工作表 1 有一列“日期”,其中包含 10 年的日期。 这些日期是澳大利亚股市的交易日。 我希望删除所有不是每个月第 15 个交易日的日期(不一定是该月的第 15 天)。 此代码适用于第一年的前 12 个月,但之后就停止了。

代码:

df = pd.read_csv(r'C:\Users\\Desktop\Sheet1.csv')
df['Date'] = pd.to_datetime(df['Date'])
df['month'] = df['Date'].dt.month
df['trading_day'] = df.groupby(['month']).cumcount() + 1
df = df[df['trading_day'] == 15]
df.drop(['month', 'trading_day'], axis=1, inplace=True)
df.to_excel("Sheet2.xlsx", index=False)

当前output:

Date                 NAV
2009-06-22 00:00:00 $50.7731
2009-07-21 00:00:00 $52.2194
2009-08-21 00:00:00 $55.5233
2009-09-21 00:00:00 $61.1116
2009-10-21 00:00:00 $62.6512
2009-11-20 00:00:00 $60.9736
2009-12-21 00:00:00 $60.2841
2010-01-22 00:00:00 $61.2418
2010-02-19 00:00:00 $59.8768
2010-03-19 00:00:00 $63.4521
2010-04-23 00:00:00 $63.1672
2010-05-21 00:00:00 $55.8651

您还需要按年分组来计算cumcount

df['trading_day'] = df.groupby([df['Date'].dt.year, 'month']).cumcount() + 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM