2014-04-07 2 views
1

그래서 아래에 표시된 간단한 데이터 프레임 df가 있습니다. clean_grams 열은 파이썬 목록 또는 NaN입니다. 목록에 요소가 있거나 비어있을 수 있습니다.이 팬더 쿼리를 만드는 방법은 무엇입니까?

이제
clean_grams          part 
0   []  E1028364E7BA353750620317F8ED618187EA76B5 
1   NaN  4C5AA421DF5FF650A63695C33AAF35531E79FC1E 
2   []  637148EF9EE16F4A0BA9A44C72330F32A7C8C9BB 
3   ['dog'] C48B08CA63359A4849B00D9A3622A604BB3EDB80 
4   NaN  932FEB7317F2E1ACEC569B9C49C3B4563C50D946 

가 비어 있지 않은 목록이 모든 행을 선택하기 위해, 나는 시도 :

df[df['clean_grams'] != []] 

하지만 값 오류 얻을 : http://pastebin.com/ugQuFqRD

가 친절하게 도움을!

감사합니다.

+0

는 버그처럼 보입니다 – elyase

답변

2

아니요, 아니요, 아니요, 그것은 DF[DF['clean_grams']!=[[],]*len(DF)]으로 작성되어야합니다.

df['clean_grams'] != []으로, 후드 아래에 무슨 일이 일어나고 있는지 고려, numpyarray[] (array부터하는 것은 또한 list입니다) 또는 방송과 [[],]*len(DF)]과 비교해야 여부를 확인할 수 없습니다. 그래서 우리는 특별히 후자를하도록 말함으로써 여기에서 그것을 도와야 만합니다.

예외 메시지는 ValueError: Arrays were different lengths: 5 vs 0으로 표시되며이 메시지는 모두 설명합니다.

+0

이것은 팬더를 사람들에게 너무 어렵게 만드는 종류의 물건입니다. 그것은 깨끗한 추상화로 당신을 도발하지만, 항상 깨지게됩니다. 당신의 도움에 감사드립니다. – jason

관련 문제