gpt4 book ai didi

python - 将整个列与列表中的值相乘

转载 作者:太空宇宙 更新时间:2023-11-04 11:16:22 24 4
gpt4 key购买 nike

我有一个非常大的数据框,我想将每列中的每个元素与列表中的值相乘。

       Name  c1  c2  c3  c4
0 a1 1 2 2 3
1 a2 2 1 1 2
2 a3 3 1 2 1
3 a4 2 3 3 4

l = [2, 3, 1, 4]

我想做的是将整个列 c1 乘以 2,c2 乘以 3,c3 乘以 1,c4 乘以 3,依此类推。

我知道我可以用 df.iloc[:,0] = df.iloc[:,0]*2但我不确定如何在所有列上有效地做到这一点。

最佳答案

您可以按以下方式使用 .loc 和列名:

import pandas as pd
import numpy as np

np.random.seed(12)

df = pd.DataFrame(
{
"df0" : np.random.choice(["a", "b"], 100),
"df1" : np.random.randint(0, 15, 100),
"df2" : np.random.randint(0, 15, 100),
"df3" : np.random.randint(0, 15, 100),
"df4" : np.random.randint(0, 15, 100),
}
)
print(df.head())

l = [2, 3, 1, 4]
df.loc[:, ["df1", "df2", "df3", "df4"]] *= np.array(l)

df.head()

这是输出:

  df0  df1  df2  df3  df4
0 b 5 10 7 13
1 b 3 2 13 3
2 a 5 0 11 14
3 b 11 1 7 10
4 b 0 4 1 12

df0 df1 df2 df3 df4
0 b 10 30 7 52
1 b 6 6 13 12
2 a 10 0 11 56
3 b 22 3 7 40
4 b 0 12 1 48

关于python - 将整个列与列表中的值相乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56921182/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com