我有兩個(gè)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列標(biāo)題基本上,我想將 的每一列乘以列標(biāo)題的同一行中df1存在的數(shù)字df2df1
3 回答

九州編程
TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超4個(gè)贊
如果name列是您的索引,您可以這樣做
df1.mul(df2.iloc[:,0], axis='columns')
如果它是普通列,則可以將其設(shè)置為索引:
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

揚(yáng)帆大魚
TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超9個(gè)贊
我認(rèn)為您需要更新列,基本上如果您的列數(shù)與其他 df 中的行數(shù)相同,您可以嘗試:
cols = df1.columns for i in cols: df1[i] = df1[i] * df2.loc[i].values
從電話打字抱歉格式化
添加回答
舉報(bào)
0/150
提交
取消