2017-05-05 55 views
0

創建一個新的數據框欄我有一個數據幀,看起來像類似於這樣:通過使用比較操作

0 
0 3 
1 11 
2 7 
3 15 

我要添加使用兩個比較操作的列。事情是這樣的:

df[1] = np.where(df[1]<= 10,1 & df[1]>10,0) 

我希望我回到這個樣子:

0 1 
0 3 1 
1 11 0 
2 7 1 
3 15 0 

但是,我得到這個錯誤信息:

TypeError: cannot compare a dtyped [float64] array with a scalar of type [bool] 

任何幫助,將不勝感激!

+3

如若'10,1'和'10,0'會有'10.1'和​​'10.0'呢?因爲它看起來好像在'where'中評估三件事物,其中之一是'1&df [1]> 10',這可能是導致類型錯誤的原因。 – bouteillebleu

回答

0

設置

df = pd.DataFrame({'0': {0: 3, 1: 11, 2: 7, 3: 15}}) 
Out[1292]: 
    0 
0 3 
1 11 
2 7 
3 15 

解決方案

#compare df['0'] to 10 and convert the results to int and assign it to df['1'] 
df['1'] = (df['0']<10).astype(int) 

df 
Out[1287]: 
    0 1 
0 3 1 
1 11 0 
2 7 1 
3 15 0 
+0

太棒了。謝謝您的幫助。對此,我真的非常感激! –

+0

不用擔心。如果它有用,請接受它作爲答案。 – Allen