首页 > 解决方案 > 数据框乘以相应的索引值

问题描述

我有一个 df,其中大部分包含零和偶尔的数字,我想将 df 中的每个数字乘以其索引值除以 60。

我试过了;

for a, b in enumerate(df):
    df[b][a] = df[b][a] * (df.index[a]/60)

例如,如果 df 是;

Index    A    B    C    D
1000        0    0    0    0
2000        0    0    4    0
3000        0    0    0    0
4000        0    2    0    0
5000        0    0    0    0
6000        0    0    4    0

那么输出应该是;

Index    A    B    C    D
1000     0    0    0    0
2000     0    0    33.33    0
3000     0    0    0    0
4000     0    133.33    0    0
5000     0    0    0    0
6000     0    0    400    0

我哪里错了?非常感谢任何帮助,谢谢!

更新

我最终使用了;

for c in df_trq.columns[1:]:
    df_trq[c] = (df_trq[c] * df_trq.index.values) / 60

这是因为我之前已将索引值设置为其他值。

谢谢

标签: pythondataframe

解决方案


你快到了,这样做:

for c in df.columns[1:]:
    df[c] = (df[c] * df['Index']) / 60

   Index    A           B           C    D
0   1000  0.0    0.000000    0.000000  0.0
1   2000  0.0    0.000000  133.333333  0.0
2   3000  0.0    0.000000    0.000000  0.0
3   4000  0.0  133.333333    0.000000  0.0
4   5000  0.0    0.000000    0.000000  0.0
5   6000  0.0    0.000000  400.000000  0.0

推荐阅读