Python 验证数据框中的行在列中的值之间是否相等
假设我有一个熊猫数据框,如下所示:Python 验证数据框中的行在列中的值之间是否相等,python,pandas,dataframe,validation,Python,Pandas,Dataframe,Validation,假设我有一个熊猫数据框,如下所示: C30 C25 C20 C15 C10 1 AJA EJE IJI OJO UJU 2 AJA EJE IJI OJO UJU 3 AJA EJE IJI OJO UJU 4 ABA EBE IBI OBO UBU 5 ABA EBE IBI OBO UBU 6 ABA EBE IBI
C30 C25 C20 C15 C10
1 AJA EJE IJI OJO UJU
2 AJA EJE IJI OJO UJU
3 AJA EJE IJI OJO UJU
4 ABA EBE IBI OBO UBU
5 ABA EBE IBI OBO UBU
6 ABA EBE IBI OBO UNU
7 BOB BIB BEB BAB BUB
我想验证所有在C30中具有相同值的行在C25、C20、C15和C10中也具有相同值
我有大约60000行,列值变化很大,如果列C30中的元素相等,那么相应的列C25元素也应该相等,以此类推
例如,验证应显示不匹配,因为第6行中的C10值不等于4行和5行。最有效的方法是什么?您可以通过以下方式使用和比较不相等的1
:
如果需要值,如果没有匹配,则使用np。其中:
i, c = np.where(m)
L = list(zip(m.index[i], m.columns[c]))
if len(L) > 0:
print ('mismatch')
print (L)
mismatch
[('ABA', 'C10')]
用于查找不唯一的行
df['is_dup'] = df.duplicated(keep=False)
输出
C30 C25 C20 C15 C10 is_dup
1 AJA EJE IJI OJO UJU True
2 AJA EJE IJI OJO UJU True
3 AJA EJE IJI OJO UJU True
4 ABA EBE IBI OBO UBU True
5 ABA EBE IBI OBO UBU True
6 ABA EBE IBI OBO UNU False
7 BOB BIB BEB BAB BUB False
我认为答案是错误的,不仅测试不匹配,因为第6行中的C10值不等于4行和5行代码>这不是OP想要的@jezraelAre吗?你确定答案吗?是的,正确的答案是你的。我想我改错了,但我把它还给了你。谢谢你的帮助。你的建议正是我想要的。太好了,很高兴能帮上忙!快乐编码!
C30 C25 C20 C15 C10 is_dup
1 AJA EJE IJI OJO UJU True
2 AJA EJE IJI OJO UJU True
3 AJA EJE IJI OJO UJU True
4 ABA EBE IBI OBO UBU True
5 ABA EBE IBI OBO UBU True
6 ABA EBE IBI OBO UNU False
7 BOB BIB BEB BAB BUB False