簡體   English   中英

從 Pandas 數據幀單元格內的字符串制作字典

[英]Make dictionary from a string inside a cell of Pandas data-frame

我的 Pandas 數據幀( df )在一列( m )中有一些字符串

df = pd.DataFrame({"m": ['0 = absence\n1 = mild\n2 = moderate \n3 = severe','0 = no \n1 = yes\n2 = Not relevant','1: smoker\n2: ex-smoker (not smoked)'], "c": [1,1,1], "x":[5,3,6]})

這將創建以下數據框:

在此處輸入圖像描述

現在,我需要先將m列中的每個字符串拆分為\n ,然后再拆分為=: ,使其成為這樣的字典:

在此處輸入圖像描述

有沒有什么緊湊的方法可以做到這一點?

看起來這里需要map方法:

import re

df.loc[:, 'm'] = df['m'].map(lambda x: dict(map(lambda y: re.split(' = |: ', y), x.split('\n'))))

Output 就像:

                                                   m  c  x
0  {'0': 'absence', '1': 'mild', '2': 'moderate '...  1  5
1      {'0': 'no ', '1': 'yes', '2': 'Not relevant'}  1  3
2     {'1': 'smoker', '2': 'ex-smoker (not smoked)'}  1  6

如果需要密鑰作為數字,您可以添加附加行:

df.loc[:, 'm'] = df['m'].map(lambda x: {int(k): v for k, v in x.items()})

Output:

                                                   m  c  x
0  {0: 'absence', 1: 'mild', 2: 'moderate ', 3: '...  1  5
1            {0: 'no ', 1: 'yes', 2: 'Not relevant'}  1  3
2         {1: 'smoker', 2: 'ex-smoker (not smoked)'}  1  6

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM