【问题标题】:Multiply row of pandas dataframe based on column name, using values of another dataframe使用另一个数据框的值,根据列名乘以熊猫数据框的行
【发布时间】:2020-06-05 05:00:08
【问题描述】:

我有两个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
  • names 是列标题

  • 基本上我想将df1 的每一列乘以df2 中存在的数字,该数字位于df1 列标题的同一行中

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

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

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    如果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
    

    【讨论】:

      【解决方案2】:

      让我们做吧

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

      【讨论】:

        【解决方案3】:

        我认为您需要更新列,基本上如果您的列数与其他 df 中的行数相同,您可以尝试:

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

        手机打字抱歉格式化

        【讨论】:

          猜你喜欢
          • 2022-01-23
          • 1970-01-01
          • 2016-08-09
          • 2018-08-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-12-27
          • 1970-01-01
          相关资源
          最近更新 更多