【发布时间】:2019-04-19 02:09:17
【问题描述】:
我想要一种方法来删除数据框列中指定字符之前的字符串部分。
在我的 df 列中,我有带有 1 个或 2 个逗号的字符串。对于有 2 个逗号的行,我想删除所有内容,包括第一个逗号。我尝试了以下 lambda 函数:
df.column.apply(lambda x: x.split(',')[1:] if x.str.count(',') == 2 else x)
但我收到一个属性错误:
'str' 对象没有属性 'str'
即使我已经将列转换为 str 使用
df.column = df.column.astype(str)
【问题讨论】:
-
x已经是str,并且没有那个属性,删除它:df.column.apply(lambda x: x.split(',')[1:] if x.count(',') == 2 else x) -
我不敢相信它这么简单。非常感谢!
-
再次感谢您的回答,但这会将编辑后的值更改为列表,这使得列系列具有唯一值,而这些值并不是真正唯一的。例如"x, y, z" 变成了 "['y', 'z']" 而不仅仅是 "y, z" 我尝试使用 astype(str) 再次转换它们,并使用 astype( 'category'),但这仍然不起作用。
标签: python python-3.x pandas