我有两个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.2df2=name1 0.2name2 0.1name3 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.213.22* 0.2 1.34* 0.1 1.5 * 0.43 ... 213.2 * 0.214.3 * 0.2 1.32* 0.1 1.2 * 0.43 ... 523.2 * 0.215.2 * 0.2 1.1 * 0.1 1.54* 0.43 ... 223.2 * 0.21s是name列标题基本上,我想将 的每一列乘以列标题的同一行中df1存在的数字df2df1
3 回答
九州编程
TA贡献1785条经验 获得超4个赞
如果name列是您的索引,您可以这样做
df1.mul(df2.iloc[:,0], axis='columns')
如果它是普通列,则可以将其设置为索引:
df1.mul(df2.set_index(0).iloc[:,0], axis='columns')
输出:
name1 name2 name3 nameXXX
0 1.020 0.120 0.47300 46.872
1 0.644 0.134 0.64500 44.772
2 0.860 0.132 0.52890 109.872
3 1.040 0.110 0.66349 46.872
扬帆大鱼
TA贡献1799条经验 获得超9个赞
我认为您需要更新列,基本上如果您的列数与其他 df 中的行数相同,您可以尝试:
cols = df1.columns for i in cols: df1[i] = df1[i] * df2.loc[i].values
从电话打字抱歉格式化
添加回答
举报
0/150
提交
取消