我對每個 ID 都有一個動態格式的資料框
df1:
ID |Start Date|End date |claim_no|claim_type|Admission_date|Discharge_date|Claim_amt|Approved_amt
10 |01-Apr-20 |31-Mar-21| 1123 |CSHLESS | 23-Aug-2020 | 25-Aug-2020 | 25406 | 19351
10 |01-Apr-20 |31-Mar-21| 1212 |POSTHOSP | 30-Aug-2020 | 01-Sep-2020 | 4209 | 3964
10 |01-Apr-20 |31-Mar-21| 1680 |CSHLESS | 18-Mar-2021 | 23-Mar-2021 | 18002 | 0
11 |12-Dec-20 |11-Dec-21| 1503 |CSHLESS | 12-Jan-2021 | 15-Jan-2021 | 76137 | 50286
11 |12-Dec-20 |11-Dec-21| 1505 |CSHLESS | 05-Jan-2021 | 07-Jan-2021 | 30000 | 0
基于 ID 列,我試圖將所有動態變數轉換為靜態格式,以便每個 ID 可以有一行。ID、開始日期、結束日期等列本質上是靜態的,而對于每個 ID,其余列本質上是動態的。
我期待以下格式的輸出:
ID |Start Date|End date |claim_no_1|claim_type_1|Admission_date_1|Discharge_date_1|Claim_amt_1|Approved_amt_1|claim_no_2|claim_type_2|Admission_date_2|Discharge_date_2|Claim_amt_2|Approved_amt_2|claim_no_3|claim_type_3|Admission_date_3|Discharge_date_3|Claim_amt_3|Approved_amt_3
10 |01-Apr-20 |31-Mar-21| 1123 |CSHLESS | 23-Aug-2020 | 25-Aug-2020 | 25406 | 19351 | 1212 |POSTHOSP | 30-Aug-2020 | 01-Sep-2020 | 4209 | 3964 | 1680 |CSHLESS | 18-Mar-2021 | 23-Mar-2021 | 18002 | 0
11 |12-Dec-20 |11-Dec-21| 1503 |CSHLESS | 12-Jan-2021 | 15-Jan-2021 | 76137 | 50286 | 1505 |CSHLESS |05-Jan-2021 |07-Jan-2021 |30000 |0
我試著做:
df1_updated = pd.get_dummies(df1,columns = ['claim_no','claim_type','Admission_date','Discharge_date','Claim_amt','Approved_amt'])
但它會創建大量難以閱讀的列。
有人可以幫助我實作預期的輸出。
uj5u.com熱心網友回復:
注釋代碼
# Index columns
idx = ['ID', 'Start Date', 'End date']
# Sequential counter to identify unique rows per index columns
cols = df.groupby(idx).cumcount() 1
# Reshape using stack and unstack
df_out = df.set_index([*idx, cols]).stack().unstack([-2, -1])
# Flatten the multiindex columns
df_out.columns = df_out.columns.map('{0[1]}_{0[0]}'.format)
結果
claim_no_1 claim_type_1 Admission_date_1 Discharge_date_1 Claim_amt_1 Approved_amt_1 claim_no_2 claim_type_2 Admission_date_2 Discharge_date_2 Claim_amt_2 Approved_amt_2 claim_no_3 claim_type_3 Admission_date_3 Discharge_date_3 Claim_amt_3 Approved_amt_3
ID Start Date End date
10 01-Apr-20 31-Mar-21 1123 CSHLESS 23-Aug-2020 25-Aug-2020 25406 19351 1212 POSTHOSP 30-Aug-2020 01-Sep-2020 4209 3964 1680 CSHLESS 18-Mar-2021 23-Mar-2021 18002 0
11 12-Dec-20 11-Dec-21 1503 CSHLESS 12-Jan-2021 15-Jan-2021 76137 50286 1505 CSHLESS 05-Jan-2021 07-Jan-2021 30000 0 NaN NaN NaN NaN NaN NaN
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/496127.html
標籤:python-3.x 熊猫 数据框
下一篇:R中常見變數名的例外值檢測