熊猫:用条件连接行

时间:2020-12-28 19:49:50

标签: pandas python-2.7

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

<头>
电子邮件 属性
js@email 国家:美国
js@email 第一:约翰
js@email 显示:约翰
js@email 马克·史密斯
js@email 地址:123 Main St
js@email 巴尔的摩
js@email MD
js@email 12345

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

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

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

我现在使用的代码是:

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

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

0 个答案:

没有答案