【发布时间】: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中将列转换为标题并乘以值
我需要将 low_value 值转换为标题并乘以值
我很感激任何建议,因为我是初学者。我可以
for i in df3['Total']:
for j in df3['low_value']:
print(i*j)
但不知道如何将其存储在 df 中。
【问题讨论】:
我找到了解决办法:
list_of_values = df3.low_value.to_list()
for val in list_of_values:
df3['val_{}'.format(val)] = df3['% Total'] * val
【讨论】:
使用 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]})
【讨论】: