Python 熊猫将两个列组合成一个json键值列

Python 熊猫将两个列组合成一个json键值列,python,pandas,Python,Pandas,你好 我想将我的数据帧中的两列合并成一个新列,它是一个JSON键值。目前我已经使用了itertuples(),这需要花费很多时间,请寻找更好的方法。下面是我的场景,我结合dob和数据形成结果列dob是键,数据是值 fn = ('Mike', 'Dorothee') dob = ('1985-08-07', '1987-01-33') data = ({'rank':'5', 'subject':'science'}, {'rank':'1', 'subject':'arts'}) df = p

你好

我想将我的数据帧中的两列合并成一个新列,它是一个JSON键值。目前我已经使用了itertuples(),这需要花费很多时间,请寻找更好的方法。下面是我的场景,我结合dob和数据形成结果列dob是键,数据是值

fn = ('Mike', 'Dorothee')
dob = ('1985-08-07', '1987-01-33')
data = ({'rank':'5', 'subject':'science'}, {'rank':'1', 'subject':'arts'})

df = pd.DataFrame(list(zip(fn, dob, data)), columns =['fn', 'dob', 'data']) 

for row in df.itertuples():
    df.loc[row.Index, 'result'] = str(dict([(row.dob, row.data)]))

+----------+------------+-------------------------------------+-----------------------------------------------------+
| fn       | dob        | data                                | result                                              |
|----------+------------+-------------------------------------+-----------------------------------------------------|
| Mike     | 1985-08-07 | {'rank': '5', 'subject': 'science'} | {'1985-08-07': {'rank': '5', 'subject': 'science'}} |
| Dorothee | 1987-01-33 | {'rank': '1', 'subject': 'arts'}    | {'1987-01-33': {'rank': '1', 'subject': 'arts'}}    |
+----------+------------+-------------------------------------+-----------------------------------------------------+
您可以使用
df.apply()


谢谢@deadshot。我会接受你的回答
df['result'] = df.apply(lambda x: {x.dob: x.data}, axis=1)