使用其他数据框的值,根据列名称乘以熊猫数据框的行

时间:2020-06-04 20:52:19

标签: python pandas 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列标题的同一行中

    < / li>

我看到了以下问题,但找不到解决问题的方法:

1)How to select rows from a DataFrame based on column values?

2)Pandas: pairwise multiplication of columns based on column name

3)Multiply columns of a dataframe by getting the column names from a list

4)pandas: Select dataframe columns based on another dataframe's columns

3 个答案:

答案 0 :(得分:2)

如果 func didBegin(_ contact: SKPhysicsContact) { case PhysicsCategory.coin.rawValue: print("collect a coin") if let coin = otherBody.node as? Coin { coin.collect() // Add the value of the coin to our encounter: self.coinsCollected += coin.value hud.setCoinCountDisplay(newCoinCount: self.coinsCollected) print("self.coinscollected") } 列是您的索引,则只需

name

如果它是普通列,则可以将其设置为索引:

df1.mul(df2.iloc[:,0], axis='columns')

输出:

df1.mul(df2.set_index(0).iloc[:,0], axis='columns')

答案 1 :(得分:1)

让我们这样做

df1=df1.mul(df2,axis=1)

答案 2 :(得分:0)

我认为您需要更新列,实质上,如果与其他df中的行具有相同数量的列,则可以尝试:

cols = df1.columns 对于我在山口: df1 [i] = df1 [i] * df2.loc [i] .values

在手机上打字很抱歉,格式化

相关问题