Python 在某些条件下转置数据帧
我有一个数据帧,示例如下-Python 在某些条件下转置数据帧,python,pandas,numpy,dataframe,jupyter-notebook,Python,Pandas,Numpy,Dataframe,Jupyter Notebook,我有一个数据帧,示例如下- UserId UserName Temp Values City Country 1 jsmith James Smith x 20 London UK 2 msmith Michael Smith y 25 Chicago US 3 mgarcia Maria Garcia
UserId UserName Temp Values City Country
1 jsmith James Smith x 20 London UK
2 msmith Michael Smith y 25 Chicago US
3 mgarcia Maria Garcia z 60 Delhi India
UserId UserName Values
1 jsmith James Smith 20
2 jsmith James Smith London
3 jsmith James Smith UK
4 msmith Michael Smith 25
5 msmith Michael Smith Chicago
6 msmith Michael Smith US
7 mgarcia Maria Garcia 60
8 mgarcia Maria Garcia Delhi
9 mgarcia Maria Garcia India
我想创建一个新的数据框,在这个数据框中,我想在新的数据框中保留UserID和UserName列,而不想将列Temp和From值转换为我想转换该列的Country列。我尝试了各种方法,但都没有成功。我需要最终输出如下-
UserId UserName Temp Values City Country
1 jsmith James Smith x 20 London UK
2 msmith Michael Smith y 25 Chicago US
3 mgarcia Maria Garcia z 60 Delhi India
UserId UserName Values
1 jsmith James Smith 20
2 jsmith James Smith London
3 jsmith James Smith UK
4 msmith Michael Smith 25
5 msmith Michael Smith Chicago
6 msmith Michael Smith US
7 mgarcia Maria Garcia 60
8 mgarcia Maria Garcia Delhi
9 mgarcia Maria Garcia India
如何做到这一点
res = (df.set_index(['UserId','UserName'])
.drop('Temp',axis=1)
.stack()
.droplevel(-1)
.reset_index(name='Values')
)
res
UserId UserName Values
0 jsmith James Smith 20
1 jsmith James Smith London
2 jsmith James Smith UK
3 msmith Michael Smith 25
4 msmith Michael Smith Chicago
5 msmith Michael Smith US
6 mgarcia Maria Garcia 60
7 mgarcia Maria Garcia Delhi
8 mgarcia Maria Garcia India