我有以下数据框
AAPL F IBM
Date
2016-05-02 46.536664 13.62 143.881476
2016-05-03 47.302004 13.43 142.752373
2016-05-04 46.810001 13.31 142.871221
2016-05-05 46.619999 13.32 145.070003
2016-05-06 46.360000 13.44 147.289993
我想将每一列除以第一行的值,然后乘以 100。计算后,前 2 行应如下所示:
AAPL F IBM
Date
2016-05-02 100 100 100
2016-05-03 101.63 98.60 99.21
我很挣扎,但我无法得到它。任何帮助表示赞赏
最佳答案
尝试这样的事情:
df /= df.iloc[0]/100
或
df = df.apply(lambda x: x/x.iloc[0]*100)
测试:
In [51]: df
Out[51]:
AAPL F IBM
Date
2016-05-02 46.536664 13.62 143.881476
2016-05-03 47.302004 13.43 142.752373
2016-05-04 46.810001 13.31 142.871221
2016-05-05 46.619999 13.32 145.070003
2016-05-06 46.360000 13.44 147.289993
输出:
In [63]: df /= df.iloc[0]/100
In [64]: df
Out[64]:
AAPL F IBM
Date
2016-05-02 100.000000 100.000000 100.000000
2016-05-03 101.644596 98.604993 99.215255
2016-05-04 100.587358 97.723935 99.297856
2016-05-05 100.179074 97.797357 100.826046
2016-05-06 99.620377 98.678414 102.368976
关于python - 选择 pandas DataFrame 中第一行的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37105612/