首页 > 解决方案 > 熊猫:用条件连接行

问题描述

我正在尝试进行特定的熊猫操作,但不知道如何操作。假设下表是我的原始表格。

电子邮件 属性
js@电子邮件 国家:美国
js@电子邮件 第一名:约翰
js@电子邮件 展示:约翰
js@电子邮件 马克史密斯
js@电子邮件 地址:主街 123 号
js@电子邮件 巴尔的摩
js@电子邮件 医学博士
js@电子邮件 12345

其余条目对于许多其他用户来说是相似的,但可能有不同的顺序。数据框有超过 140 万行。我正在尝试获得以下输出。这可以就地完成,也可以通过创建一个新列来完成(无论哪个更好更快)。下面的示例显示了在原地执行时的输出。

电子邮件 属性
js@电子邮件 国家:美国
js@电子邮件 第一名:约翰
js@电子邮件 展示:约翰、马克·史密斯
js@电子邮件 地址:123 Main St, Baltimore, MD, 12345

获取以下输出的规则如下:如果条目中有a ':',则'Attributes'保留原始文本,如果条目中没有':',则将该文本移动到上面的条目中,并','在其间添加a。这样做直到下一个条目':'

我现在使用的代码是:

df['Extended Attributes'].groupby(df['Extended Attributes'].str.contains(':').cumsum()).agg(', '.join)

但是,这只返回一列带有索引,它不会修改原始数据帧,我无法将其插入原始数据帧,因为它没有空行,所以会出现不匹配。

标签: pandaspython-2.7

解决方案


推荐阅读