这是从日期中提取日期后我的数据框的样子(见最后一列):
Date AAPL NFLX INTC day
0 2008-01-02 27.834286 3.764286 25.350000 2
1 2008-01-03 27.847143 3.724286 24.670000 3
2 2008-01-04 25.721428 3.515714 22.670000 4
3 2008-01-07 25.377142 3.554286 22.879999 7
4 2008-01-08 24.464285 3.328571 22.260000 8
对于我的下一步,如果当前日期 < 前一天,我想附加另一个名为“Month_End”的列,并带有真/假标记。这一步是识别月末。这个怎么做?非常感谢。
到目前为止,我已经尝试过以下方法(我是菜鸟,刚开始使用 python)
for i, row in df.iterrows():
if df.day.iloc[i+1] < df.day.iloc[i]:
print (df['day'])
和
df.assign(Month_End = df.day.diff() < 0)
print(df.head())
最佳答案
您可以直接将日期与 MonthEnd
进行比较,看看它是否为 True
。
from pandas import offsets
df['Month_End'] = df.Date == df.Date+offsets.MonthEnd(0)
例子:
df
:
Date AAPL NFLX INTC day
0 2008-01-02 27.834286 3.764286 25.350000 2
1 2008-01-03 27.847143 3.724286 24.670000 3
2 2008-01-04 25.721428 3.515714 22.670000 4
3 2008-01-07 25.377142 3.554286 22.879999 7
4 2008-01-08 24.464285 3.328571 22.260000 8
5 2008-01-31 24.464285 3.328571 22.260000 31
6 2008-02-28 24.464285 3.328571 22.260000 28
7 2008-02-29 24.464285 3.328571 22.260000 29
8 2009-02-28 24.464285 3.328571 22.260000 28
from pandas import offsets
df.Date == df.Date + offsets.MonthEnd(0)
0 False
1 False
2 False
3 False
4 False
5 True
6 False
7 True
8 True
Name: Date, dtype: bool
关于python - 如果值小于 Pandas 数据框系列中的先前值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50975313/