2017-08-09 8 views
0

私は次の日付フレームを持っています。Pythonでの位置のエラー

mydf = pd.DataFrame({'month':[2,3,7,8],'day':[29,24,20,29]}) 
>>> mydf 
    day month 
0 29  2 
1 24  3 
2 20  7 
3 29  8 

>>> leapdf = mydf.loc[(mydf['month'] == 2) & (mydf['day'] == 29) ] 
>>> leapdf 
    day month 
0 29  2 

>>> otherdf = mydf.loc[(mydf['month'] != 2) & (mydf['day'] != 29) ] 
>>> otherdf 
    day month 
1 24  3 
2 20  7 

上記以外の場合、29日目と8日目が含まれると予想しています。しかし、含まれていません。誰が私にエラーであるかを案内することができますか?あなたはorため|が必要

おかげ

+0

は、なぜあなたは一日29が含まれることを期待するでしょうか? '(mydf ['day']!= 29)'となります。あなたのフィルターは、2月のすべての月と、29日と等しいすべての日(月に関係なく)を削除します。 – Alexander

+0

おかげで間違いがありました – venkysmarty

答えて

1

otherdf = mydf.loc[(mydf['month'] != 2) | (mydf['day'] != 29) ] 

と同じです:あなたが明示的に拒否されたとき

otherdf = mydf.loc[~((mydf['month'] == 2) & (mydf['day'] == 29)) ] 
print (otherdf) 
    day month 
1 24  3 
2 20  7 
3 29  8 
関連する問題