我有一列,其值如下所示。
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])
答案 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]