如果值=1,则显示dataframe打印列

2024-06-25 06:40:58 发布

您现在位置:Python中文网/ 问答频道 /正文

将此数据保存在熊猫数据帧中:

animal      tall    swim        jump  
frog          0        1            1
toad          1        0            0
tadpole       0        0            1

希望此输出:

frog swim
frog jump
toad tall
tadpole jump

有什么内置函数吗?你知道吗


Tags: 数据函数内置jumpanimalfrogtoadtall
1条回答
网友
1楼 · 发布于 2024-06-25 06:40:58

^{}^{}一起使用,过滤1并按构造函数创建DataFrame

df1 = df.set_index('animal').stack()
s = df1[df1==1]

df2 = pd.DataFrame({'a':s.index.get_level_values(0),
                    'b':s.index.get_level_values(1)})
print (df2)
         a     b
0     frog  swim
1     frog  jump
2     toad  tall
3  tadpole  jump

另一种解决方案是使用^{}

df2 = s.index.to_frame(index=False)
df2.columns = ['a','b']
print (df2)
         a     b
0     frog  swim
1     frog  jump
2     toad  tall
3  tadpole  jump

^{}^{}过滤的不同溶液:

df2 = (df.melt('animal', var_name='val')
         .query('value == 1')
         .sort_values('animal')
         .reset_index(drop=True)
         .drop('value', axis=1))

相关问题 更多 >