我有一个pandas dataframe df
Red Green Yellow Purple
Basket1 1 2 0 10
Basket2 4 5 0 0
Basket3 9 10 11 12
我想迭代这个数据框并将每个元素除以每列中的总数。示例第一个元素是1/14。我知道许多代码但无法将它们组合在一起。对于ietrating我使用
for idx, row in df.iterrows:
并且对于列意味着我使用df.sum(axis = 0) 请帮我解决中间代码。
答案 0 :(得分:4)
这应该是诀窍:
>>> df/df.sum()
Red Green Yellow Purple
Basket1 0.071429 0.117647 0.0 0.454545
Basket2 0.285714 0.294118 0.0 0.000000
Basket3 0.642857 0.588235 1.0 0.545455
至于你的序列“迭代数据帧并对每个元素进行操作”方法,只要知道,虽然for
循环有时是最简单,最直观的方式来完成工作,{ {1}}是为矢量化而构建的(即快速 )。当您拥有大量数据时,找到使用内置pandas
的方法通常是此工作的最佳工具。