Python 使用pandas部分取消桌子的锁定
这是一个表,需要按类将其部分解压Python 使用pandas部分取消桌子的锁定,python,pandas,Python,Pandas,这是一个表,需要按类将其部分解压 ID Class Type 2017 2018 12A A Net 1 7 12B A Gross 8 12A B Net 3 9 12B B Gross 4 10 13A A Net 5 11 13C B Net 6 5 预期结果: ID Class
ID Class Type 2017 2018
12A A Net 1 7
12B A Gross 8
12A B Net 3 9
12B B Gross 4 10
13A A Net 5 11
13C B Net 6 5
预期结果:
ID Class Type 2017A 2018A 2017B 2018B
12A A Net 1 7 3 9
12B A Gross NaN 8 4 10
13A A Net 5 11 NaN NaN
13C B Net NaN NaN 6 5
使用:
说明:
Class
用于创建的新第二列df1 = df.set_index(['ID','Type','Class']).unstack().sort_index(level=1, axis=1)
df1.columns = ['{}{}'.format(a,b) for a, b in df1.columns]
df1 = df1.reset_index()
s = df.drop_duplicates('ID').set_index('ID')['Class']
df1.insert(1, 'Class', df1['ID'].map(s))
print (df1)
ID Class Type 2017A 2018A 2017B 2018B
0 12A A Net 1.0 7.0 3.0 9.0
1 12B A Gross NaN 8.0 4.0 10.0
2 13A A Net 5.0 11.0 NaN NaN
3 13C B Net NaN NaN 6.0 5.0