首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何将dataframe中的每一行乘以不同dataframe的不同列,并将所有行的总和作为Python中的新列?

要将dataframe中的每一行乘以不同dataframe的不同列,并将所有行的总和作为Python中的新列,可以按照以下步骤进行操作:

  1. 首先,导入所需的库和模块:
代码语言:txt
复制
import pandas as pd
  1. 创建一个示例的dataframe:
代码语言:txt
复制
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
df2 = pd.DataFrame({'D': [10, 11, 12], 'E': [13, 14, 15], 'F': [16, 17, 18]})
  1. 使用apply函数和lambda表达式,将每一行的值与另一个dataframe的对应列相乘,并将结果存储在新列中:
代码语言:txt
复制
df1['New Column'] = df1.apply(lambda row: row['A'] * df2.loc[row.name, 'D'] + row['B'] * df2.loc[row.name, 'E'] + row['C'] * df2.loc[row.name, 'F'], axis=1)

在上述代码中,lambda表达式中的row代表每一行的数据,通过row.name可以获取行索引,然后使用.loc方法获取df2中对应行的列值。

  1. 最后,查看新列的结果:
代码语言:txt
复制
print(df1)

完整的代码如下:

代码语言:txt
复制
import pandas as pd

df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
df2 = pd.DataFrame({'D': [10, 11, 12], 'E': [13, 14, 15], 'F': [16, 17, 18]})

df1['New Column'] = df1.apply(lambda row: row['A'] * df2.loc[row.name, 'D'] + row['B'] * df2.loc[row.name, 'E'] + row['C'] * df2.loc[row.name, 'F'], axis=1)

print(df1)

这样,每一行的值与另一个dataframe的对应列相乘,并将所有行的总和作为新列添加到原始dataframe中。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的视频

领券