簡體   English   中英

並排檢查兩個pandas數據幀的列之間的差異

[英]Check for differences between the columns of two pandas data frames side by side

我認為這個解決方案可以解決我的問題,但是這里需要檢查他的兩個數據幀的行是否包含差異。 我想對列進行相同的操作。 解決方案是ne = (df1 != df2).any(1)但這對我的列沒有幫助。 是的,我剛檢查過,我的兩個數據幀都具有完全相同的shape 如果我做df1 == df2它會給我一個充滿真實和虛假的新數據框。 查看前100行,看起來大多數列都有相同的例外情況。 你怎么能為每一列得到一個真/假?

這是一個玩具示例:

import numpy as np
import pandas as pd
df1 = pd.DataFrame(np.random.randint(low=0, high=10, size=(5, 5)),  columns=['a', 'b', 'c', 'd', 'e'])
df2 = df1.copy()
df2.at[3,'d'] += 10

DF1

DF2

期望的輸出:

A True
B True
C True
D False
E True

使用DataFrame.all檢查每行的所有值是否為True

print ((df1 == df2).all())
a     True
b     True
c     True
d    False
e     True
dtype: bool

詳情:

print (df1 == df2)

      a     b     c      d     e
0  True  True  True   True  True
1  True  True  True   True  True
2  True  True  True   True  True
3  True  True  True  False  True
4  True  True  True   True  True

any解決方案也是可能的,只需要反轉輸出~

print (~((df1 != df2).any()))

a     True
b     True
c     True
d    False
e     True
dtype: bool

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM