【发布时间】:2021-01-31 03:25:42
【问题描述】:
我有一个带有日期时间索引的数据框。首先,这是我的假数据。
import pandas as pd
data1 = {'date' : ['20190219 093100', '20190219 103200','20190219 171200','20190219 193900','20190219 194500','20190220 093500','20190220 093600'],
'number' : [18.6125, 12.85, 14.89, 15.8301, 15.85, 14.916 , 14.95]}
df1 = pd.DataFrame(data1)
df1 = df1.set_index('date')
df1.index = pd.to_datetime(df1.index).strftime('%Y-%m-%d %H:%M:%S')
我想要做的是创建一个名为“New_column”的新列,其中包含“是”或“否”的分类变量取决于“数字”列中的值是否在同一天增加了至少 20% .
所以在这个假数据中,只有第二个值“12.85”会是“是”,因为它在时间戳“2019-02-19 19:45:00”处增加了 23.35%
即使第一个值比第三个值大 25%,因为它发生在未来,所以不应该计算在内。
在这个过程之后,我应该在每天最后一行的“New_column”中有 NaN。
我一直在尝试许多不同的方法来做到这一点:
- pandas.DataFrame.pct_change
- pandas.DataFrame.diff
我怎样才能以 Python 的方式做到这一点?
【问题讨论】: