添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

0 q 20 'f' 1 q 14 'd' 2 o 20 'a'

我想比较当前行和下一行的A列。如果这些值相等,我想将具有较低值的B列的值添加到具有较大值的比较行的D列中。然后,我要删除列B的移动列值。这就像一个交换过程。

A    B    C     D

0 q 20 'f' 14 1 o 20 'a'

我有数千行,而iloc,loc在方法上运行缓慢。至少我想使用DataFrame apply方法。我尝试了一些代码示例,但是它们没有用。

我想做如下事情:DataFrame.apply(lambda row:self.compare(row,next(row)),axis = 1))

我有一个compare方法,但无法将下一行传递给compare方法。如何将其传递给方法?我也乐于听到更快的熊猫解决方案。

问题来源:stackoverflow

最好不要用apply来做,因为那样会很慢。你可以看看使用shift,例如

df['A_shift'] = df['A'].shift(1)
df['Is_Same'] = 0
df.loc[df.A_shift == df.A, 'Is_Same'] = 1

如果要在组内进行转换,会变得有些复杂,但仍然可以实现。

回答来源:stackoverflow

2020-03-24 09:29:29 企业邮箱发送邮件时,若出现投递失败产生退信,内容提示包含如下: the mta server of * reply:550 failed to meet SPF requirements 或者 the mta server of 163.com — 163mx01.mxmail.netease.com(220.181.14.141) reply:550 MI:SPF mx14,QMCowECpA0qTiftVaeB3Cg—.872S2 1442548128 http://mail.163.com/help 298078