我有一个包含8行dict值的数据框。我想用逗号将所有行合并为单行。由于我的数据框包含字典值,因此出现错误。可以将dict值合并到一行吗?
我有一个如下数据框,
names names1
0 {'name':'Ashwin'} {'name':'prem'}
1 {'name':'Alex'} {'name':'Naga'}
我希望成为 名字 0 {'name':'Ashwin'},{'name':'Alex'} {'name':'prem'},{'name':'Naga'}
请注意:dtype不应更改为dict
预先感谢
答案 0 :(得分:1)
将列转换为列表并调用DataFrame
构造函数:
df = pd.DataFrame({'names': [df['names'].tolist()]})
print (df)
names
0 [{'name': 'Ashwin', 'age': '26'}, {'name': 'Al...
如果值是字符串并且需要字典列表:
import ast
df = pd.DataFrame({'names': [df['names'].apply(ast.literal_eval).tolist()]})
print (df)
names
0 [{'name': 'Ashwin', 'age': '26'}, {'name': 'Al...
答案 1 :(得分:0)
您可以尝试:
df_new=df.apply(','.join).reset_index(drop=True).rename('name')
答案 2 :(得分:0)
假设只需要一个字符串值,则可以将''.join()
用作聚合函数:
pd.DataFrame(df.agg(lambda x: ','.join(x.astype(str)))).T
它给出:
names
0 {'name': 'Ashwin', 'age': '26'},{'name': 'Alex...