2017-04-12 62 views
0

我有一個包含多個列和索引的數據框,如果該值爲正數,我想用1替換每個值。
這裏是我想做到這一點,但它失敗,我有個efollowing錯誤:將條件語句應用於數據框的所有值

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all(). 

還有許多其他的職位有相同的錯誤,但沒有一個我讀幫助的。

這裏是我的代碼:

 numeric_cols = [col for col in df1 if df1[col].dtype.kind != 'O'] 
     if df1[numeric_cols] > 0: 
      df1[numeric_cols] = 1 
     else: 
      df1[numeric_cols] = -1 

回答

1

。適用將是非常緩慢的類似。你只是在做兩個操作而下注:

df = pd.DataFrame([[1,2,3],[1,5,2],[2,3,1]]) 
print df 

    0 1 2 
0 1 2 3 
1 1 5 2 
2 2 3 1  

df[df<3]=0 
df[df>=3]=1 

print df 

    0 1 2 
0 0 0 1 
1 0 1 0 
2 0 1 0