我有以下格式的数据,其中Column_1中的值映射到Map_1、Map_2或Map_3。但是,数据不是具有映射表,而是以下面的格式存在,其中1标记Column_1中的哪个值映射到哪个映射值
Column_1 Map_1 Map_2 Map_3
A 0 1 0
B 1 0 0
C 1 0 0
D 0 0 1我想将其转换为以下格式:
A Map_2
B Map_1
C Map_1
D Map_3发布于 2020-07-20 03:58:24
假设Column_1是您的索引,请尝试使用pd.DataFrame.dot:
df.dot(df.columns)如果Column_1不是您的索引,请尝试:
df[df.colmuns[1:]].dot(df.columns)输出:
A Map_2
B Map_1
C Map_1
D Map_3
dtype: object发布于 2020-07-20 03:59:06
熊猫的idxmax前来营救。它返回最大值的列,在您的情况下就足够了:
import pandas as pd
df = pd.DataFrame({"Bird":[1,0,1,0], "Snake":[0,0,0,1], "Dog":[0,1,0,0]})
df.idxmax(1)DataFrame:
Bird Snake Dog
0 1 0 0
1 0 0 1
2 1 0 0
3 0 1 0代码输出:
1 Dog
2 Bird
3 Snake
dtype: object对于您的案例:
df.loc[:, ["Map_1", "Map_2", "Map_3"]].idxmax(1)https://stackoverflow.com/questions/62984952
复制相似问题