检查dataframe列中的所有值是否都是相同的Pandas

时间:2019-01-28 15:53:38

标签: python python-3.x pandas dataframe

我想快速简单地检查一个数据帧中counts的所有列值是否相同:

在:

import pandas as pd

d = {'names': ['Jim', 'Ted', 'Mal', 'Ted'], 'counts': [3, 4, 3, 3]}
pd.DataFrame(data=d)

出局:

  names  counts
0   Jim       3
1   Ted       4
2   Mal       3
3   Ted       3

我只需要一个简单的条件,即if all counts = same value然后print('True')

有快速的方法吗?

4 个答案:

答案 0 :(得分:7)

您可以使用nunique

df.counts.nunique() == 1

答案 1 :(得分:5)

is_unique

df.counts.is_unique
Out[541]: False

答案 2 :(得分:0)

我认为nunique的工作量超出了必要。您所需要的就是最小值等于最大值:

df.counts.min() == df.counts.max()

如有必要,添加skipna=False

甚至可以使用它甚至一次性查找具有恒定内容的 all 列:

eq = df.apply(lambda s: s.min() == s.max())
constant_columns = eq[eq].index

答案 3 :(得分:0)

我更喜欢:

df['counts'].eq(df['counts'].iloc[0]).all()

我发现它最容易阅读,并且适用于所有值类型。根据我的经验,我也发现它足够快。