如何移除Python DataFrame列项中的括号与引号?
解决DataFrame移除括号与引号的问题
场景与需求
现有名为df1的DataFrame:
Place Actor ['new york','washington'] ['chris evans','John'] ['new york','los angeles'] ['kate','lopez']
需要移除各列项中的方括号与单引号,得到如下结果:
Place Actor new york,washington chris evans,John new york,los angeles kate,lopez
你的尝试代码问题
你写的代码存在两处关键错误:
- 列名未加引号,
cols = [Place,Actor]应该改为cols = ['Place', 'Actor'],否则会被当作变量而非列名识别 - lambda表达式的逻辑完全错误,无法实现目标效果
正确实现方法
需要根据列元素的实际类型选择对应方案:
情况1:列元素是字符串格式的"列表"(比如值为"['new york','washington']")
直接用正则替换掉方括号和单引号:
cols = ['Place', 'Actor'] df1[cols] = df1[cols].apply(lambda x: x.str.replace(r"[\[\]']", "", regex=True))
情况2:列元素是实际的列表对象(比如值为['new york','washington'])
直接用join方法将列表元素拼接为字符串:
cols = ['Place', 'Actor'] df1[cols] = df1[cols].apply(lambda x: x.str.join(','))
内容的提问来源于stack exchange,提问作者AB14
相关产品推荐
相关产品推荐

