2014-06-06 25 views
0

在這個例子中INT列:可能的錯誤:熊貓試圖填補花車

In [1]: df 
Out[1]: 
    a b 
0 1 1.1 
1 2 2.2 
2 1 3.3 
3 2 4.4 

In [2]: df['c'] = 0 

In [2]: df.c[df.a == 1] = df.b[df.a == 1] 

In [3]: df 
Out[3]: 
    a b     c 
0 1 1.1 4607632778762754458 
1 2 2.2     0 
2 1 3.3 4614613358185178726 
3 2 4.4     0 

這似乎是產生的行爲是混亂的。我知道問題是我已經初始化'c'作爲int列。如果,相反,我使用df['c'] = 0.然後一切工作正常。所以我明白爲什麼我的例子不起作用。它似乎可能會有一個更有用的結果或至少一個錯誤消息,而不是一個看似隨機的大數字。絕對是一件好事,而不是需要擁有。

+0

哪個版本是你嗎?雖然你可能不應該像這樣連接任務,但我只是嘗試了0.13.1並獲得了預期的輸出。 – chrisb

回答

2

您是鏈式索引,請參閱here

用途:

df.loc[df.a==1,'c'] = df['b'] 
+0

令人驚訝的是,OP的原創作品*在0.14下工作! –