Python 在数据框中编辑行数据

Python 在数据框中编辑行数据,python,pandas,Python,Pandas,数据框中有一列(spot\u categories\u name),如下所示。 我的目标是去掉开头的“name”和结尾的括号(}])。 简单地说,我想编辑以下内容 工匠 烧烤 剧院 咖啡厅 如果使用pandas.str.split方法,它可以将字符串拆分为数组,只要它遇到此字符 然后,您可以使用.str[n]来获取这些数组中的第n个条目。在您的示例中,您可以分割:'和'},然后分割分割后的最后一个和第一个条目,它似乎与您的测试用例相匹配。下面是一个示例 import pandas as pd

数据框中有一列(spot\u categories\u name),如下所示。 我的目标是去掉开头的“name”和结尾的括号(}])。 简单地说,我想编辑以下内容

工匠

烧烤

剧院

咖啡厅


如果使用pandas.str.split方法,它可以将字符串拆分为数组,只要它遇到此字符

然后,您可以使用.str[n]来获取这些数组中的第n个条目。在您的示例中,您可以分割:'和'},然后分割分割后的最后一个和第一个条目,它似乎与您的测试用例相匹配。下面是一个示例

import pandas as pd
test = pd.DataFrame(data = ["'name': 'Craftman'}]","'name': 'BBQ'}]"],columns=['spot_categories_name'])
test.spot_categories_name.str.split(": '").str[-1].str.split("'}").str[0]
print(test.to_dict())
#{'spot_categories_name': {0: "'name': 'Craftman'}]", 1: "'name': 'BBQ'}]"}}
使用:


df['spot\u categories\u name']=df['spot\u categories\u name'].map(lambda x:x.lstrip('name\':'))
请参见。此外,与其粘贴图片,不如直接粘贴数据帧。似乎此数据帧的生成效率很低。首先,您应该尝试正确生成数据帧。查看正则表达式解决方案很有用,如果它确实与测试案例。我更喜欢你的方式,我想谢谢你分享…啊,我错过了“比”当我很快就准备好了哈哈。
df['spot_categories_name'] = df['spot_categories_name'].str.extract(r'\'name\': \'([^\']*)\'')