合并多行为单行 - pandas

2024-06-25 06:08:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含8行dict值的dataframe。我想用逗号把所有行合并成一行。因为我的数据帧包含dict值,所以我得到了一个错误。可以将dict值合并到一行吗?你知道吗

我有一个如下的数据帧

         names                              names1
0        {'name':'Ashwin'}       {'name':'prem'}
1        {'name':'Alex'}         {'name':'Naga'}

我希望是这样, 姓名姓名 0{'name':'Ashwin'},{'name':'Alex'}{'name':'prem'},{'name':'Naga'}

请注意:数据类型不应更改为dict

提前谢谢


Tags: 数据namedataframenames错误dict数据类型姓名
3条回答

您可以尝试:

df_new=df.apply(','.join).reset_index(drop=True).rename('name')

假设您只需要一个字符串值,可以使用''.join()作为聚合函数:

pd.DataFrame(df.agg(lambda x: ','.join(x.astype(str)))).T

它给出:

                                               names
0  {'name': 'Ashwin', 'age': '26'},{'name': 'Alex...

将列转换为列表并调用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...

相关问题 更多 >