比较熊猫数据框中的多列

恐惧

我想比较数据框的多列并找到值不同的行。在示例中,我只有三列,但我希望能够重用此过程,而不管列数或列名称如何。

创建数据框的代码:

dict = {'column_name': {0: 'a_desc',
1: 'a_code',
2: 'b_desc',
3: 'b_code',
4: 'fiscal_year'},
'20190508-131122': {0: 250.0, 1: 50.0, 2: 100.0, 3: 250.0, 4: 20.0},
'20190508-151756': {0: 250.0, 1: 51.0, 2: 100.0, 3: 250.0, 4: 20.0},
'20190509-074713': {0: 250.0, 1: 50.0, 2: 100.0, 3: 250.0, 4: 20.0}}

df = pd.DataFrame(dict)

df = df.set_index('column_name')

数据框

column_name   20190508-131122   20190508-151756   20190509-074713
a_desc        250.0             250.0             250.0
a_code        50.0              51.0              50.0
b_desc        100.0             100.0             100.0
b_code        250.0             250.0             250.0
fiscal_year   20.0              20.0              20.0

这是我的最新尝试,但它不起作用(没有匹配项):

matched = ~df.all(axis=1)
df.loc[matched]

我的期望是它会打印行 'a_code' 的内容,因为其中一列的值与其他列不同。

我知道有很多关于比较多列的问题,但我找不到这种情况或可以重新用于这种情况的代码。

贝尼

IIUCnunique将返回每行的唯一编号,在您的情况下,您需要选择大于 1 的数字,因此每行至少有一个与其他值不同的值

df[df.nunique(1).ne(1)]
Out[331]: 
             20190508-131122  20190508-151756  20190509-074713
column_name                                                   
a_code                  50.0             51.0             50.0

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章