如果知道行和值,如何返回列的标签?
我有一个熊猫数据框,其行名为“ A”,“ B”,“ C”,而列名为“ X”,“ Y”,“ Z”。知道值在行中(例如A),我想返回Column。查看示例,当我知道行“ A”中的值为“ 1”时,我希望返回“ X”。如何实现?
data=[[1,2,3],[4,5,6],[7,8,9]]
d=pd.DataFrame(data, ["A", "B", "C"], ["X", "Y", "Z"])
X Y Z
A 1 2 3
B 4 5 6
C 7 8 9
答案 0 :(得分:2)
如果您知道1
在A
中,请使用loc
并获取结果索引
s = df.loc['A'].eq(1)
s[s].index
返回
Index(['X'], dtype='object')
如果您知道一行中只有一个值为1
的单元格,请使用.item()
>>> s[s].index.item()
'X'
答案 1 :(得分:0)
您可以使用dot
d.eq(1).dot(d.columns).loc[lambda x : x!='']
A X
dtype: object