迭代数据帧并对每个元素执行操作

时间:2017-03-24 14:18:11

标签: python pandas

我有一个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) 请帮我解决中间代码。

1 个答案:

答案 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的方法通常是此工作的最佳工具。

相关问题