Vergleich von DatenrahmenPython

Python-Programme
Anonymous
 Vergleich von Datenrahmen

Post by Anonymous »

Ziel ist es, zwei PANDAS -Datenframes unter Berücksichtigung einer Fehlerquote zu vergleichen.
Um das Problem zu reproduzieren
import pandas as pd
< /code>
Fall eins - Gleiche Datendatenfreams < /h3>
df1 = pd.DataFrame({"A": [1,1,1], "B": [2,2,2], "C": [3,3,3]})
df2 = pd.DataFrame({"A": [1,1,1], "B": [2,2,2], "C": [3,3,3]})
print(df1.compare(df2, result_names=('df1', 'df2')))

# The result is an empty dataframe
Empty DataFrame
Columns: []
Index: []
< /code>
Fall Zwei - verschiedene Datendatenfrüchte < /h3>
df1 = pd.DataFrame({"A": [1,1,1], "B": [2,2,2], "C": [3,3,3]})
df2 = pd.DataFrame({"A": [1,1,1], "B": [2,2.2,2], "C": [3,3,3]}) # Note that the second B value is 2.2
print(df1.compare(df2, result_names=('df1', 'df2')))

# The result is a dataframe showing differences
B
df1 df2
1 2.0 2.2
< /code>
Das Problem ist, dass ich möchte, dass es nur Unterschiede mehr als 0,5 < /p>
wie ich es erreicht habe. < /h3>
threshold = 0.5
df3 = df1.melt().reset_index().merge(df2.melt().reset_index(), on="index")
df3["diff"] = (df3["value_x"] - df3["value_y"]).abs()
print(df3.loc[df3["diff"] > threshold])

# The result is an empty dataframe
Empty DataFrame
Columns: [index, variable_x, value_x, variable_y, value_y, diff]
Index: []
< /code>
Gibt es einen besseren Weg, dies zu tun? Es dauert viel Zeit für einen riesigen df.
[*] Ich bin geöffnet, um andere Bibliotheken als Numpy zu verwenden.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post