使用另一个数据框的值,根据列名乘以熊猫数据框的行

我有两个DataFrames,如下:


df1 = 



 name1 name2  name3   ....    nameXXX 

  5.1   1.2    1.1    ...      223.2

  3.22  1.34   1.5    ...      213.2

  4.3   1.32   1.23   ...      523.2

  5.2   1.1    1.543  ...      223.2


df2=


name1     0.2

name2     0.1

name3     0.43

...       ...

nameXXX   0.21

我需要的 :


df3=


 name1       name2         name3     ...         nameXXX 

5.1 * 0.2   1.2 * 0.1    1.1 * 0.43  ...      223.2 *  0.21

3.22* 0.2   1.34* 0.1    1.5 * 0.43  ...      213.2 * 0.21

4.3 * 0.2   1.32* 0.1    1.2 * 0.43  ...      523.2 * 0.21

5.2 * 0.2   1.1 * 0.1    1.54* 0.43  ...      223.2 *  0.21

s是name列标题


基本上,我想将 的每一列乘以列标题的同一行中df1存在的数字df2df1


catspeake
浏览 87回答 3
3回答

九州编程

如果name列是您的索引,您可以这样做df1.mul(df2.iloc[:,0], axis='columns')如果它是普通列,则可以将其设置为索引:df1.mul(df2.set_index(0).iloc[:,0], axis='columns')输出:   name1  name2    name3  nameXXX0  1.020  0.120  0.47300   46.8721  0.644  0.134  0.64500   44.7722  0.860  0.132  0.52890  109.8723  1.040  0.110  0.66349   46.872

紫衣仙女

让我们做df1=df1.mul(df2,axis=1)

扬帆大鱼

我认为您需要更新列,基本上如果您的列数与其他 df 中的行数相同,您可以尝试:cols = df1.columns for i in cols: df1[i] = df1[i] * df2.loc[i].values从电话打字抱歉格式化
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python