gpt4 book ai didi

python - Pandas DataFrame 乘以列并创建新列

转载 作者:行者123 更新时间:2023-11-30 22:41:22 24 4
gpt4 key购买 nike

我有一些包含 11 列的数据。我需要将第 1-10 列乘以第 11 列,然后用这些结果创建 10 个新列。为此,我使用 pandas DataFrame。

现在我明白了如何使用这样的代码分别为每一列执行此操作

df['newcolumn1'] = df['column1']*df['column11']
df['newcolumn2'] = df['column2']*df['column11']
df['newcolumn3'] = df['column3']*df['column11']

我假设我可以设置一个函数和一个循环来迭代列并创建新列。无论如何,我可以通过引用列索引号而不是列名称来做到这一点。

最佳答案

您可以使用multiply,而不是单独相乘或显式循环。生成新列的 DataFrame,然后 pd.concat将事物连接在一起。按您希望的列号执行此操作可能看起来像

pd.concat([df, 
(df.iloc[:, :10].multiply(df.iloc[:, -1], axis='rows')
.add_prefix('new_'))],
axis=1)

最小示例

>>> df
column1 column2 column3 column4
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
3 12 13 14 15

>>> pd.concat([df,
(df.iloc[:, :3].multiply(df.iloc[:, -1], axis='rows')
.add_prefix('new_')], axis=1))],
axis=1)

column1 column2 column3 column4 new_column1 new_column2 new_column3
0 0 1 2 3 0 3 6
1 4 5 6 7 28 35 42
2 8 9 10 11 88 99 110
3 12 13 14 15 180 195 210

关于python - Pandas DataFrame 乘以列并创建新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42586934/

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