[英]Pandas: Dictionary column into key and value column
我有一個這樣的數據框
df = pd.DataFrame(
{"colA": [1],
"colB": [[{"code1": 17}, {"code2": 18}, {"code3": 19}]]
}
)
>> df
colA colB
0 1 [{'code1': 17}, {'code2': 18}, {'code3': 19}]
使用explode
我將列表轉換為行
>> df.explode('colB')
colA colB
0 1 {'code1': 17}
0 1 {'code2': 18}
0 1 {'code3': 19}
我想將 colB 轉換為鍵和值列
colA colB_key colB_value
1 code1 17
1 code2 18
1 code3 19
我無法繼續
使用DataFrame.pop
用於提取列,創建的元組的列表,並通過對DataFrame
的構造方法,正確的連接通過DataFrame.join
默認創建的索引DataFrame.reset_index
后explode
:
df = df.explode('colB').reset_index(drop=True)
df1 = pd.DataFrame([list(x.items())[0] for x in df.pop('colB')],
columns=['colB_key','colB_value'])
df = df.join(df1)
print (df)
colA colB_key colB_value
0 1 code1 17
1 1 code2 18
2 1 code3 19
另一個想法:
L = [(a, *list(x.items())[0]) for a, b in zip(df['colA'], df['colB']) for x in b]
df = pd.DataFrame(L, columns=['colA','colB_key','colB_value'])
print (df)
colA colB_key colB_value
0 1 code1 17
1 1 code2 18
2 1 code3 19
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.