我有以下資料框df:
A B Var Value
0 A1 B1 T1name T1
1 A2 B2 T1name T1
2 A1 B1 T2name T2
3 A2 B2 T2name T2
4 A1 B1 T1res 1
5 A2 B2 T1res 1
6 A1 B1 T2res 2
7 A2 B2 T2res 2
我現在想“減半”我的資料框,因為Var包含不應位于同一列下的變數。我的預期結果是:
A B Name Value
0 A1 B1 T1 1
1 A2 B2 T1 1
2 A1 B1 T2 2
3 A2 B2 T2 2
我應該用什么來正確地取消旋轉?
uj5u.com熱心網友回復:
然后 :
df = df[~df['Var'].isin(['T1name','T2name'])]
輸出 :
A B Var Value
4 A1 B1 T1res 1
5 A2 B2 T1res 1
6 A1 B1 T2res 2
7 A2 B2 T2res 2
uj5u.com熱心網友回復:
只需過濾字串包含的位置res并使用 var 列的前兩個字符分配一個新列
df[df['Var'].str.contains('res')].assign(Name=df['Var'].str[:2]).drop(columns='Var')
A B Value Name
4 A1 B1 1 T1
5 A2 B2 1 T1
6 A1 B1 2 T2
7 A2 B2 2 T2
請注意,這會創建原始 DataFrame 的切片而不是副本
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/415714.html
標籤:
