大熊猫在列中使用lambda应用拆分和连接

时间:2019-02-05 10:22:18

标签: python pandas

我有一列,其值如下所示。

apple~fruit lion~animal banana-fruit samsung~phone

每个项目用space(' ')分隔,每个项目和类别用'~'分隔。我想提取每个项目名称,并用空格分隔,如下所示:

apple lion banana samsung

我可以使用lambda获得值的第一项。但是我不知道如何连接由space(' ')分隔的每个项目。

df.item = df.item.apply(lambda x: x.split(' ')[0].split('~')[0])

1 个答案:

答案 0 :(得分:2)

使用join,默认情况下也使用split处理空格,因此应简化操作:

df.item = df.item.apply(lambda x: ' '.join(x.split()[0].split('~')[0]))

具有熊猫文字功能的解决方案:

df.item = df.item.str.split().str[0].str.split('~').str[0].str.join(' ')

如果性能很重要,请使用列表理解:

df.item = [ ' '.join(x.split()[0].split('~')[0]) for x in df.item]