我有一只熊猫,DataFrame
有四列,A, B, C, D
。结果发现,有时B
和C
的值可以是0
。因此,我希望获得以下信息:
B[i] = B[i] if B[i] else min(A[i], D[i])
C[i] = C[i] if C[i] else max(A[i], D[i])
在这里,我使用i
来表示对帧的所有行的遍历。使用Pandas很容易找到包含零列的行:
df[df.B == 0] and df[df.C == 0]
但是,我不知道如何轻松地执行上述转换。我可以想到各种低效和不雅的方法(for
循环覆盖整个帧),但并不简单。
布尔索引和apply的结合可以做到这一点。 下面是关于替换C列的零元素的示例
请尝试“iterrows”DataFrame类方法,以便有效地遍历DataFrame的行。请参阅《pandas 0.8.1指南》的第6.7.2章。
相关问题 更多 >
编程相关推荐