我正在尋找解決方案,將幾個串列合并成一個,以后可以轉換為一個表格。所有的串列都有相同的元素,而且其中一些串列的專案是獨一無二的。
person1 = [['Name','Alex']。['Gender','M], ['Age', 30]
person2 = [['Name','Anna'], ['Gender','F']。['Phone','1234567'], ['Age', 25]
person3 = [['Name','Fred'], ['Gender','M'] 。['Age', 33], ['Passport', '987654']]
我想把它轉換為串列/表格,如下:
我想把它轉換為串列/表格。
# Name Alex Anna Fred
# 性別 M F M
# Phone #N/A 1234567 #N/A
#年齡 30 25 33
# Passport #N/A #N/A 987654
我試圖使用dict,但是不能創建一個函式來添加資料,如果鍵已經存在的話:
我試圖使用dict,但是不能創建一個函式來添加資料。
combined = {}。
for item in person1:
if item[0] in combined:
# 如何添加資料,如果鍵已經存在于dict中?
print('Exists'/span>)
else:
combined[item[0]] = item[1]
for item in person2:
if item[0] in combined:
# 如何添加資料,如果鍵已經存在于dict中?
print('Exists'/span>)
else:
combined[item[0]] = item[1]
for item in person3:
if item[0] in combined:
# 如何添加資料,如果鍵已經存在于dict中?
print('Exists'/span>)
else:
combined[item[0]] = item[1]
print(combined)
# Current output(當前輸出)。
# {'姓名': 'Alex', '性別': '男', '年齡': 30, '電話': '1234567', '護照': '987654'}
如果有人能建議如何制作,我將非常感激。
uj5u.com熱心網友回復:
你可以使用defaultdict(list),如下:
from collections import defaultdict
person1 = [['Name','Alex'], ['Gender', 'M'], ['年齡', 30]]
person2 = [['Name','Anna'], ['Gender','F']。['Phone','1234567'], ['Age', 25]
person3 = [['Name','Fred'], ['Gender','M'] 。['年齡', 33], ['護照', '987654']
dct = defaultdict(list)
def key_in_per(person, key)。
for p in person。
if key == p[0] 。
return p[1].
return None None
for key in ['姓名','性別'。'年齡', '電話', '護照'] 。
for person in [person1, person2, person3]:
dct[key].append(key_in_per(person, key))
print(dct)
print(pd.DataFrame(dct))
輸出:
defaultdict(list,
{'Name'/span>: ['Alex'/span>, 'Anna'/span>, 'Fred'/span>],
'Gender': ['M', 'F', 'M'] 。
'Age': [30, 25, 33] 。
'Phone': [None, '1234567', None]。
'Passport': [None, None, '987654']})
姓名 性別 年齡 電話 護照
0 Alex M 30 None None
1 Anna F 25 1234567 None
2 Fred M 33 None 987654
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/308558.html
標籤:
