![](/img/trans.png)
[英]How to multiply each column in a dataframe with a row from another dataframe pandas?
[英]Multiply row of pandas dataframe based on column name, using values of another dataframe
我有兩個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
name
是列標題
基本上我想將df1
的每一列乘以df2
中存在的數字,該數字位於df1
的 header 列的同一行中
我看到了以下問題,但找不到解決問題的方法:
如果name
列是您的索引,您可以這樣做
df1.mul(df2.iloc[:,0], axis='columns')
如果它是普通列,則可以將其設置為索引:
df1.mul(df2.set_index(0).iloc[:,0], axis='columns')
Output:
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
讓我們做
df1=df1.mul(df2,axis=1)
我認為您需要更新列,基本上如果您的列數與其他 df 中的行數相同,您可以嘗試:
cols = df1.columns for i in cols: df1[i] = df1[i] * df2.loc[i].values
從手機打字抱歉格式化
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.