我在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]
需要任何帮助
答案 0 :(得分:0)
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']]
转换str
import ast
df.a=df.a.apply(ast.literal_eval)
答案 1 :(得分:0)
遍历数据框,遍历列的名称,`:
In [15]: df = pd.DataFrame({'a':[1,2,3], 'b':[4,5,6]})
In [16]: df
Out[16]:
a b
0 1 4
1 2 5
2 3 6
In [17]: for x in df:
...: print(x)
...:
a
b
就像一个dict
会在其键上进行迭代。
您需要以下内容:
df['your_column'].apply(lambda x: [d['name'] for d in x])