要将dataframe中的每一行乘以不同dataframe的不同列,并将所有行的总和作为Python中的新列,可以按照以下步骤进行操作:
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)
在上述代码中,lambda表达式中的row代表每一行的数据,通过row.name可以获取行索引,然后使用.loc方法获取df2中对应行的列值。
print(df1)
完整的代码如下:
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中。
领取专属 10元无门槛券
手把手带您无忧上云