火石 发表于 2022-9-17 22:13:43

求大神指点一个pandas的问题

已知下列一个dataframe,想新建一列,计算price列每个数相对两天之前的变化幅度。例如2011-05-05 这天的价格2050.07,跟2011-05-03的2114.42相比的变化幅度是(2050.07-2114.42)/2114.42
data               price
2011-05-03    2114.42
2011-05-04    2056.70
2011-05-05    2050.07
2011-05-06    2037.75
2011-05-09    2036.76
2011-05-10    2057.67
2011-05-11    2048.34
2011-05-12    2021.28
2011-05-13    2043.26
2011-05-16    2019.54
2011-05-17    2033.78
2011-05-18    2053.64
2011-05-19    2046.11
2011-05-20    2052.54

月下孤井 发表于 2022-9-18 00:23:27

import pandas as pd
df = pd.DataFrame({'data': ['2011-05-03', '2011-05-04', '2011-05-05', '2011-05-06', '2011-05-09', '2011-05-10',
                            '2011-05-11', '2011-05-12', '2011-05-13', '2011-05-16', '2011-05-17', '2011-05-18',
                            '2011-05-19', '2011-05-20'],
                   'price': [2114.42, 2056.70, 2050.07, 2037.75, 2036.76, 2057.67, 2048.34, 2021.28,
                           2043.26, 2019.54, 2033.78, 2053.64, 2046.11, 2052.54]})
df['rangeability2'] = + [(df['price'].tolist()-df['price'].tolist())/df['price'].tolist() for i in range(len(df['price'].tolist())-2)]
print(df)

火石 发表于 2022-9-18 11:01:55

月下孤井 发表于 2022-9-18 00:23
import pandas as pd
df = pd.DataFrame({'data': ['2011-05-03', '2011-05-04', '2011-05-05', '2011-05- ...

多谢大神指点
页: [1]
查看完整版本: 求大神指点一个pandas的问题