2016-03-07 34 views
-2

我想比較2值的結果,但我不知道這裏發生了什麼。熊貓如果/真理陳述值錯誤

# Read items into Dataframe and count the number of rows there is. 
df_csv = pandas.read_csv('dataset.csv', index_col=False, header=None) 
print(len(df_csv.index)) 

# Creating Session to count the number of rows there are in the SQL file 
Session = sessionmaker(bind=engine) 
session = Session() 
# Getting count 
meta = MetaData() 
table_to_count = Table('Database count details', meta, autoload=True, 
         autoload_with=engine) 
df_sql = session.query(func.count(table_to_count)).scalar() 
print(df_sql) 

# Perform logic test 
if df_csv <= df_sql: 
print("sql is less than csv") 

elif df_csv >= df_sql: 
print("CSV is current with sql") 

不過,我得到的錯誤是ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

我提到了一些計算器其他問題,但我仍然沒能解決這個問題。你怎麼看?

編輯

print(len(df_csv.index))將返回值3984

print(df_sql)將返回3982

所以我想這些2個數字進行比較。

+0

'if'不明白對數組布爾操作,因爲錯誤狀態一樣,如果你有1或你陣列中的所有積極條件,所以你需要決定你是否正在尋找1個或更多的正面匹配,例如'if(df_csv <= df_sql).all():'等等。 – EdChum

+0

你認爲'df_csv <= df_sql'是什麼意思? – Goyo

+0

@Goyo我編輯了我的問題。希望能幫助到你? –

回答

0

您必須添加len

if len(df_csv) <= df_sql: 
    print("sql is less than csv") 
elif len(df_csv) >= df_sql: 
    print("CSV is current with sql") 

但我認爲你需要:

if len(df_csv) > df_sql: 
    print("sql is less than csv") 
elif len(df_csv) == df_sql: 
    print("CSV is current with sql") 
+0

對不起,但我不明白這是如何回答我的問題。我嘗試了你的方法,但是我仍然無法使邏輯測試正常工作 –

+0

這會返回一個錯誤消息''int'類型的對象沒有len()' –

+0

對不起,我認爲是錯字。 – jezrael