【发布时间】:2017-11-21 23:19:37
【问题描述】:
我有一个包含日期、项目和 2 个值的 pandas 数据框。我要做的就是输出另一列,如果 B 列大于 0,则输出 A 列 / B 列的乘积,如果 B 列等于 0,则输出 0。
date item A B C
1/1/2017 a 0 3 0
1/1/2017 b 2 0 0
1/1/2017 c 5 2 2.5
1/1/2017 d 4 1 4
1/1/2017 e 3 3 1
1/1/2017 f 0 4 0
1/2/2017 a 3 3 1
1/2/2017 b 2 2 1
1/2/2017 c 3 9 0.333333333
1/2/2017 d 4 0 0
1/2/2017 e 5 3 1.666666667
1/2/2017 f 3 0 0
这是我编写的代码,但内核一直在死机(请记住,这只是一个示例表,我有大约 30,000 行,所以没什么太疯狂的)
df['C'] = df.loc[df['B'] > 0, 'A'] / df['B'])
知道发生了什么吗?是否有东西无限运行导致它崩溃?谢谢您的帮助。
【问题讨论】:
-
它会在较小的数据帧上崩溃吗?先验听起来像一个错误。尝试缩小到导致崩溃的行/行集。
标签: python pandas if-statement dataframe