我有一個字典串列,其中一個字典可能比其他字典有更多的鍵,例如
[
{
"First Name": "qwert",
"Last name": "fgh",
"Status": "status",
"18/02/22": "4.11",
"20/02/22": "17.13"
},
{
"First Name": "updated",
"Last name": "fgh",
"Status": "status",
"19/02/22": "14.0",
"22/02/22": "8.48"
}
]
你看到上面的字典有 Date 作為鍵。首先, dict 沒有 19/02/22 和 22/02/22 ,第二個 dict 沒有 18/02/22 和 20/02/22 。現在 Pandas 有什么辦法,這樣我就可以添加帶有空值的缺失鍵,以便所有 dicts 都具有相同的鍵,例如
[
{
"First Name": "qwert",
"Last name": "fgh",
"Status": "status",
"18/02/22": "4.11",
"19/02/22": "",
"20/02/22": "17.13",
"22/02/22": ""
},
{
"First Name": "updated",
"Last name": "fgh",
"Status": "status",
"18/02/22": "",
"19/02/22": "14.0",
"20/02/22": "",
"22/02/22": "8.48"
}
]
基本上,我正在使用 Pandas 將此 dict 轉換為 excel 檔案,如果所有 dict 沒有相同的 ekey,則生成的 excel 沒有按順序排列的日期。它看起來像

您會看到 19/02/22 出現在 20/02/22 之后,因為第一個字典沒有 19/02/22。
所以它可以是一個大資料集,基本上,我希望 excel 檔案按順序排列所有日期
uj5u.com熱心網友回復:
首先轉換為DataFrame:
df = pd.DataFrame(L)
print (df)
First Name Last name Status 18/02/22 20/02/22 19/02/22 22/02/22
0 qwert fgh status 4.11 17.13 NaN NaN
1 updated fgh status NaN NaN 14.0 8.48
然后使用 key 引數對日期時間進行排序,DataFrame.sort_index并通過以下方式將值轉換為日期to_datetime時間:
f = lambda x: pd.to_datetime(x, dayfirst=True, errors='coerce')
df = df.fillna('').sort_index(axis=1, key=f, na_position='first')
print (df)
First Name Last name Status 18/02/22 19/02/22 20/02/22 22/02/22
0 qwert fgh status 4.11 17.13
1 updated fgh status 14.0 8.48
L = df1.to_dict(orient='records')
print (L)
[{'First Name': 'qwert',
'Last name': 'fgh',
'Status': 'status',
'18/02/22': '4.11',
'19/02/22': '',
'20/02/22': '17.13',
'22/02/22': ''},
{'First Name': 'updated',
'Last name': 'fgh',
'Status': 'status',
'18/02/22': '',
'19/02/22': '14.0',
'20/02/22': '',
'22/02/22': '8.48'}]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/431518.html
標籤:json python-3.x 熊猫 数据框 字典
