【发布时间】:2018-11-13 12:52:07
【问题描述】:
我有一个如下的熊猫数据框
id name Base field1 field2 field3
1 AA Y Yes Consumer Not Applicable
1 BB N Yes Consumer Not Applicable
2 CC Y Yes Consumer Not Applicable
2 DD N Yes Not Applicable Not Applicable
2 EE N No Not Applicable Modified
3 FF Y Yes Not Applicable Applicable
3 GG N Yes Not Applicable Not Applicable
3 HH N Yes Not Applicable Not Applicable
预期的结果是根据ID列对这个dataframe进行分组,并检查其他所有列上的数据是否是每个组中的相同数据,最后写入结果。
我试过这个来验证每个组的数据,但它总是说 TRUE
代码:
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)
预期结果是
id name field1 field2 field3 Error
1 AA Yes Consumer Not Applicable Pass
1 BB Yes Consumer Not Applicable Pass
2 CC Yes Consumer Not Applicable field1, field2, field3 mismatch for ID: 2
2 DD Yes Not Applicable Not Applicable field1, field2, field3 mismatch for ID: 2
2 EE No Not Applicable Modified field1, field2, field3 mismatch for ID: 2
3 FF Yes Not Applicable Applicable field3 mismatch for ID: 3
3 GG Yes Not Applicable Not Applicable field3 mismatch for ID: 3
3 HH Yes Not Applicable Not Applicable field3 mismatch for ID: 3
有什么帮助吗?
【问题讨论】:
-
你想要的结果是什么,只有
id = 1通过了你的测试? -
嗨,我已经更新了数据框和预期结果。让我知道它是否有帮助
标签: python-3.x pandas dataframe pandas-groupby