gpt4 book ai didi

python - 根据行值条件从数据框中提取列名

转载 作者:太空宇宙 更新时间:2023-11-04 09:53:03 24 4
gpt4 key购买 nike

我有一个数据框

     A     B     C
u1 0 .5 .2
u2 .2 0 .3
u3 .1 0 0

我需要针对每个值不为零的索引查找列名所以我需要输出

        elements 
u1 [B,C]
u2 [A,C]
u3 [A]

我可以使用 df.idxmax(axis=1) 跨行查找最高值的列名但是如何找到列的所有名称。

最佳答案

您可以使用 apply使用 axis=1 按行处理并通过将值转换为 bool - 0False,而不是 0True:

df = df.apply(lambda x: x.index[x.astype(bool)].tolist(), 1)
print (df)
u1 [B, C]
u2 [A, C]
u3 [A]
dtype: object

如果输出应该是strings:

s = np.where(df, ['{}, '.format(x) for x in df.columns], '')
df = pd.Series([''.join(x).strip(', ') for x in s], index=df.index)
print (df)
u1 B, C
u2 A, C
u3 A
dtype: object

详细信息:

print (s)
[['' 'B, ' 'C, ']
['A, ' '' 'C, ']
['A, ' '' '']]

关于python - 根据行值条件从数据框中提取列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46970557/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com