【发布时间】:2018-01-04 04:50:05
【问题描述】:
我正在学习使用生成器,但不太了解它们的工作原理。
我想要做的是遍历行并将每行中的一个单元格乘以另一个单元格,然后使用结果创建一个新列。
rate = (df['Fee'][i] for df['Fee'] in df / df['Costs'][i] for df['Costs'] in df * 100)
df['rate']=df.iterrows(rate)
因此,在上面,我尝试制作一个生成器,它可以计算费用占成本的百分比。
我意识到使用 for 循环会更容易,但我想了解在这种情况下如何使用生成器。
下面的示例数据框。
Industry Expr1 Fee Costs
Food & Drink June 9970.320 116171.15
Music Industry June 7255.534 131492.59
Manufacturing June 5278.960 171315.01
Music Industry June 6120.596 143688.78
Telecommunications April 4123.986 78733.09
【问题讨论】:
-
df['Rate']=df.Fee/df.Costs
-
你不会在这里使用生成器,也不会在 pandas/numpy 中使用生成器
-
正如其他 cmets 指出的那样,利用 pandas 中的矢量化操作而不是使用循环。
-
如果我错了,请纠正我,但那些是......迭代器,不是吗?
-
另外,对象的
type是df?