【发布时间】:2018-03-02 06:52:05
【问题描述】:
如果我们有一个包含以下值的 Pandas DataFrame
x
date
2017-07-30 1
2017-07-31 2
2017-08-01 3
2017-08-02 4
我们如何创建一个新列y,其值是使用
today's y = 2*(previous day's y) + (today's x)
对于最早的日期,y 将是 1
预期结果:
x y
date
2017-07-30 1 1
2017-07-31 2 4
2017-08-01 3 11
2017-08-02 4 26
尝试:
import pandas as pd
d = {
'date': ['2017-07-30', '2017-07-31', '2017-08-01', '2017-08-02'],
'x': [1,2,3,4]
}
df = pd.DataFrame.from_dict(d).set_index('date')
df['y'] = 1
df['y'] = df['y'].shift(1)*2 + df['x']
print(df)
尝试的结果
x y
date
2017-07-30 1 NaN
2017-07-31 2 4.0
2017-08-01 3 5.0
2017-08-02 4 6.0
【问题讨论】:
标签: python python-3.x pandas numpy