我有一個名為作業記錄的列,其資料是這樣的:
我有一個名為作業記錄的列。
| Records |
|---|
| Aya: 20 on 18/9/2021, Asmaa: 10 on 20/9/2021, Aya: 20 on 20/9/2021 | 。
我想為這一列達到一個結構,因為當我試圖對一個日期范圍進行匯總時,例如(從2021年9月1日到2021年9月30日),給我每個名字花費的總時間。
我試著將這一列改為串列,然后再改為字典,但這并不奏效。
我怎樣才能在python中改變這個列的結構? 我應該使用regex嗎?
{18/9/2021 : {Aya:20}, 20/9/2021 : {Asmaa:10}, 20/9/2021 : {Aya:20}。}
uj5u.com熱心網友回復:
你可以在這里使用一個dict,但它必須是嵌套的,因為你每個日期有多個條目。
import pandas as pd
df = pd.DataFrame({'Records': ['Name: hours on date, Name: hours on date',
'Aya: 20 on 18/9/2021, Asmaa: 10 on 20/9/2021, Aya: 20 on 20/9/2021']})
# 只保留有實際資料的行。
data = df.loc[~df['Records'].str.contains('Name')]
# 在逗號分隔符上進行分割,并在每個員工身上爆發出唯一的行。
data = data['Records'].str.split(',').explode()
# 使用regex來捕獲相關資料并構建字典。
data = data.str.extract('([a-zA-z] ):s(d{1,2})sons(d{1,2}/d{1,2}/d{4})').reset_index(drop=True)
data.groupby(2).apply(lambda x: dict(zip(x[0],x[1])) .to_dict()
輸出
{'18/9/2021'/span>: {'Aya': '20'}, '20/9/2021': {'Asmaa': '10'/span>, 'Aya'/span>: '20'}}。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/324007.html
標籤:
下一篇:對每一組數值進行逐列串聯
