需要将每一列乘以 pandas 中该列的顶部单元格

gui*_*man 2 python pandas

我有以下 DF:

Score1 Score2 Score3
1      3      4
0      0      0
2      3      5
1      6      2
Run Code Online (Sandbox Code Playgroud)

我想将每一列乘以该列单元格的顶部。所以输出将是:

Score1 Score2 Score3
1      3      4
0      0      0
2      9     20
1     18      8
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

Cor*_*ien 5

使用df.update

df.update(df.iloc[0] * df.iloc[1:])
print(df)

# Output:
   Score1  Score2  Score3
0     1.0     3.0     4.0
1     0.0     0.0     0.0
2     2.0     9.0    20.0
3     1.0    18.0     8.0
Run Code Online (Sandbox Code Playgroud)

或者combine_first:

df = df.iloc[0].mul(df.iloc[1:]).combine_first(df)
print(df)

# Output:
   Score1  Score2  Score3
0       1       3       4
1       0       0       0
2       2       9      20
3       1      18       8
Run Code Online (Sandbox Code Playgroud)