尝试从字典列表中的键检索值时出现 TypeError

我在 Pandas DataFrame 中有一组字典:


 0      [{'id': 16, 'name': 'Animation'}, {'id': 35, 'name': 'Comedy'}, {'id': 10751, 'name': 'Family'}]                                                                                                     

 1      [{'id': 12, 'name': 'Adventure'}, {'id': 88, 'name': 'Fantasy'}, {'id': 10751, 'name': 'Family'}]                                                                                                    

 2      [{'id': 10749, 'name': 'Romance'}, {'id': 77, 'name': 'Horror'}]     

我试图将所有名称从一行中提取到一个简单的字符串列表中,例如:数据集中每一行的“恐怖、家庭、戏剧”等。


我试过这段代码,但我收到错误:字符串索引必须是整数


for y in df:

    names = [x['name'] for x in y]

任何帮助是appriciated


慕沐林林
浏览 132回答 2
2回答

慕丝7291255

遍历一个数据帧迭代的名字列,`的:In [15]: df = pd.DataFrame({'a':[1,2,3], 'b':[4,5,6]})In [16]: dfOut[16]:   a  b0  1  41  2  52  3  6In [17]: for x in df:    ...:     print(x)    ...:ab它就像一个dict会迭代它的键。您需要以下内容:df['your_column'].apply(lambda x: [d['name'] for d in x])

12345678_0001

IIUC,这是字典而不是列表。你应该使用.get[[y.get('name') for y in x ]for x in df['your columns']]Out[578]: [['Animation', 'Comedy', 'Family'], ['Adventure', 'Fantasy', 'Family'], ['Romance', 'Horror']]转换strimport astdf.a=df.a.apply(ast.literal_eval)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python