我有一個資料框,它有一列包含多個值,用“,”分隔。
id data
0 {'1':A, '2':B, '3':C}
1 {'1':A}
2 {'0':0}
如何拆分“資料”列的鍵值并為其中存在的每個鍵值創建一個新列,而不洗掉原始的“資料”列。
所需的輸出。
id data 1 2 3 0
0 {'1':A, '2':B, '3':C} A B C Nan
1 {'1':A} A Nan Nan Nan
2 {'0':0} Nan Nan Nan 0
Thank you in advance :).
uj5u.com熱心網友回復:
您需要一個正則運算式來將資料轉換為可以決議為 JSON 的格式。然后,pd.json_normalize會很好地完成作業:
df['data'] = df['data'].str.replace(r'(["\'])\s*:(. ?)\s*(,?\s*["\'}])', '\\1:\'\\2\'\\3', regex=True)
import ast
df['data'] = df['data'].apply(ast.literal_eval)
df = pd.concat([df, pd.json_normalize(df['data'])], axis=1)
輸出:
>>> df
data 1 2 3 0
0 {'1': 'A', '2': 'B', '3': 'C'} A B C NaN
1 {'1': 'A'} A NaN NaN NaN
2 {'0': '0'} NaN NaN NaN 0
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/449215.html
