首页 > 解决方案 > 在每一行上创建 df 列连接值

问题描述

如何在我的 DataFrame 中创建一个新列,它是一个 json 字符串,相当于以下格式的每一行的串联列值?

到目前为止的代码:

import pandas as pd
data = {'Name':['Tom', 'Nat', 'Harry', 'Jack'],'Age':[20, 21, 22, 23]}
df = pd.DataFrame(data)

输入 df:

  Name  Age
0    Tom   20
1   Nat   21
2  Harry   22
3   Jack   23

输出df:

  Name  Age Combined
0    Tom   20   [{"Name":"Tom","Age":20}]
1   Nat   21    [{"Name":"Nat","Age":21}]
2  Harry   22   [{"Name":"Harry","Age":22}]
3   Jack   23   [{"Name":"Jack","Age":23}]

标签: pythonpandasdataframe

解决方案


这是一种方法

import pandas as pd
data = {'Name':['Tom', 'Nat', 'Harry', 'Jack'],'Age':[20, 21, 22, 23]}
df = pd.DataFrame(data)

df['Combined'] = '[{"'+str(df.columns[0])+'": "'+df['Name']+'", "'+str(df.columns[1])+'": '+df['Age'].apply(str)+'}]'

它有效,但可能有更好的方法来做到这一点

    Name    Age Combined
0   Tom     20  [{"Name": "Tom", "Age": 20}]
1   Nat     21  [{"Name": "Nat", "Age": 21}]
2   Harry   22  [{"Name": "Harry", "Age": 22}]
3   Jack    23  [{"Name": "Jack", "Age": 23}]

推荐阅读