【问题标题】:Pandas, Covent column into header and multiply by another column熊猫,将列转换为标题并乘以另一列
【发布时间】:2021-08-24 04:24:01
【问题描述】:

这个问题是关于在pandas中将列转换为标题并乘以值

我需要将 low_value 值转换为标题并乘以值

我很感激任何建议,因为我是初学者。我可以

for i in df3['Total']:
    for j in df3['low_value']:
        print(i*j)

但不知道如何将其存储在 df 中。

【问题讨论】:

  • 不要发布数据是图片,发布为文本。

标签: pandas pandas-datareader


【解决方案1】:

我找到了解决办法:

  1. 我将一列作为列表读取

list_of_values = df3.low_value.to_list()

  1. 然后对于剩余列中的每个值,我将其乘以列表中的值并添加为新列
for val in list_of_values:
    df3['val_{}'.format(val)] = df3['% Total'] * val

【讨论】:

    【解决方案2】:

    使用 np.outer 和 DataFrame 构造函数试试这个:

    pd.DataFrame(
        np.outer(df["Total"], df["low_value"]),
        index=[df["Name"], df["Total"]],
        columns=df["low_value"],
    ).reset_index()
    

    输出:

    low_value Name     Total  33.783784  7.751938  1.057194  0.922509  0.198094
    0           aa  0.000296   0.010000  0.002295  0.000313  0.000273  0.000059
    1           bb  0.001290   0.043581  0.010000  0.001364  0.001190  0.000256
    2           cc  0.009459   0.319561  0.073326  0.010000  0.008726  0.001874
    3           dd  0.010840   0.366216  0.084031  0.011460  0.010000  0.002147
    4           ee  0.050481   1.705439  0.391326  0.053368  0.046569  0.010000
    

    输入数据帧:

    df = pd.DataFrame({'Name':['aa', 'bb', 'cc', 'dd', 'ee'],
                      'Total':[.000296, .001290,.009459,.010840,.050481],
                      'low_value':[33.783784, 7.751938, 1.057194, .922509, .198094]})
    

    【讨论】:

      猜你喜欢
      • 2017-04-08
      • 2021-10-20
      • 2021-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-12
      • 2018-10-21
      相关资源
      最近更新 更多