![](/img/trans.png)
[英]Check if values of 2 different pandas dataframe fields are equal
[英]Check if values within a group are equal in Pandas
我有类似下面的'DataFrame`:
>>> df=pd.DataFrame(index=['A','A','A','B','B','C','C','C'])
>>> df['Value1']=[1,1,1,2,1,4,4,4]
>>> df['Value2']=[1,2,3,4,5,6,7,8]
>>> df
Value1 Value2
A 1 1
A 1 2
A 1 3
B 2 4
B 1 5
C 4 6
C 4 7
C 4 8
>>>
DataFrame
的索引代表3个不同的组。 我想检查组中的列值是否都相等。 我目前的方法和所需的输出如下:
>>> result_list=[]
>>> for Col in df.columns:
... result=df.groupby(level=0)[Col].apply(lambda x: len(set(x))==1)
... result_list.append(result)
...
>>>
>>> final=pd.concat(result_list,1)
>>> final
Value1 Value2
A True False
B False False
C True False
>>>
这是最好的方法吗? 我想知道是否可以这样做而无需遍历我的DataFrame
的列。
另外使用len(set(x)==1)
确定组中所有项目是否相等的最佳方法?
df.groupby(level=0).agg(lambda x: len(set(x)) == 1)
Value1 Value2
A True False
B False False
C True False
SImilar对Jansen的回答,但没有建立集合。
df.groupby(level=0).agg(lambda s:np.unique(s).size==1)
Value1 Value2
A True False
B False False
C True False
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.