我有 datetime 和 int 值字典,如下所示。
end_date = datetime.datetime.strptime("01-12-2020", "%d-%m-%Y")
details = {
datetime.datetime.strptime("30-01-2020", "%d-%m-%Y") : 15,
datetime.datetime.strptime("10-10-2020", "%d-%m-%Y") : 10,
datetime.datetime.strptime("11-10-2020", "%d-%m-%Y") : 11.5,
datetime.datetime.strptime("10-11-2020", "%d-%m-%Y") : 20,
datetime.datetime.strptime("12-11-2020", "%d-%m-%Y") : 23.19,
}
我想將其轉換為以下熊貓資料框。如果字典中沒有資料,則應填充 null

uj5u.com熱心網友回復:
IUUC,您可以創建一個空資料框并回圈details填充值
import calendar
df = pd.DataFrame(index=range(1, 32), columns=list(calendar.month_abbr)[1:])
for k, v in details.items():
if k < end_date:
df.loc[k.day, k.strftime("%b")] = v
df = df.add_suffix('-20')
print(df)
Jan-20 Feb-20 Mar-20 Apr-20 May-20 Jun-20 Jul-20 Aug-20 Sep-20 Oct-20 Nov-20 Dec-20
1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
4 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
5 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
6 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
7 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
8 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
9 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
10 NaN NaN NaN NaN NaN NaN NaN NaN NaN 10 20 NaN
11 NaN NaN NaN NaN NaN NaN NaN NaN NaN 11.5 NaN NaN
12 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 23.19 NaN
13 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
14 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
15 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
16 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
17 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
18 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
19 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
20 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
21 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
22 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
23 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
24 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
25 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
26 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
27 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
28 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
29 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
30 15 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
31 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
uj5u.com熱心網友回復:
解決方案:
import pandas as pd
import datetime
df = pd.DataFrame(columns=[y '_2020' for y in ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']], index= [x for x in range(1,32)])
month_map={1: 'Jan', 2: 'Feb', 3: 'Mar', 4: 'Apr', 5: 'May', 6: 'Jun', 7: 'Jul', 8: 'Aug', 9: 'Sep', 10: 'Oct', 11: 'Nov', 12: 'Dec'}
details = {
datetime.datetime.strptime("30-01-2020", "%d-%m-%Y") : 15,
datetime.datetime.strptime("10-10-2020", "%d-%m-%Y") : 10,
datetime.datetime.strptime("11-10-2020", "%d-%m-%Y") : 11.5,
datetime.datetime.strptime("10-11-2020", "%d-%m-%Y") : 20,
datetime.datetime.strptime("12-11-2020", "%d-%m-%Y") : 23.19,
}
for k1,v1 in details.items():
df.loc[k1.day, month_map[k1.month] '_2020']=v1
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/474522.html
上一篇:根據之前的標記除以列中的值
