熊猫在列中合并字符串并对其进行排序

DogukanYılmaz

我有三列要合并和排序

x1 x2   x3   x4
US DE   None None
FR DE   US   None
FR None None None
DE CA   None None

我想做的是按字母顺序合并这四列。

merged
DE, US
DE, FR, US
FR
CA, DE
耶斯列尔

您可以过滤出Nones,进行排序并加入列表理解应该非常快:

df['merged'] = [', '.join(sorted(filter(None, x))) for x in df.to_numpy()]

使用lambda函数的替代方法比较慢:

df['merged'] = df.apply(lambda x: ', '.join(sorted(filter(None, x))), axis=1)
print (df)
   x1    x2    x3    x4      merged
0  US    DE  None  None      DE, US
1  FR    DE    US  None  DE, FR, US
2  FR  None  None  None          FR
3  DE    CA  None  None      CA, DE

如果使用纯大熊猫方法,则DataFrame方法最慢:

s = df.stack().sort_values().groupby(level=0).agg(', '.join)
print (s)
0        DE, US
1    DE, FR, US
2            FR
3        CA, DE
dtype: object

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在熊猫中对字符串进行排序

在熊猫中对字符串类型MultiIndex进行排序

按熊猫中的字符串和数字对MultiIndex列进行排序

熊猫数据框,根据其整数表示对字符串数据进行分组和排序

根据列名称中的匹配字符串对熊猫细胞(字符串)进行排序

在python熊猫中合并字符串

对列中的字符串进行排序并打印图形

在Pandas中对包含字符串的列进行排序

熊猫-按字符串对列进行重新排序包含概念并在它们之间进行比较

按列中的第二个字符串对熊猫数据框进行排序

在字符串中对字符进行排序

将熊猫列中的字符串与另一个熊猫列中的字符串进行比较

如何基于熊猫数据框中的字符串选择行并对其进行子集化?

如何按长度对字符串数组进行排序并在PHP中维护其键?

根据子字符串对熊猫数据框列进行排序

根据字符串值列对熊猫数据框行进行排序

如何通过同时包含数字和字符串的列对熊猫数据框进行排序?

对包含代表熊猫软件版本的字符串的列进行排序

如何在熊猫字符串中对数字进行排序?

在熊猫数据框中以字符串格式对日期进行排序?

根据字符串值的类型对熊猫中的行进行排序

按字符串长度对熊猫系列中的列表进行排序

熊猫如何在每一行中对连接的字符串进行排序?

如何根据特定列中的值对熊猫数据文件中的字符串排序?

合并两列同时消除熊猫数据框中的重复字符串

替换熊猫列中的字符串

熊猫索引 - 按数字子字符串对字符串索引进行排序

根据列(字符串)对大熊猫中的CSV排序

合并大熊猫DataFrame中的数字列值以获取重复的行而不合并字符串