한 열에 목록 개체가 포함되어있는 팬더 데이터 프레임이 있습니다. dtype: object.
이 목록 개체는 길이가 다릅니다.
features other_features
0 ["foo", "bar"] 2
1 ["foo", "dog"] 1
2 ["dog"] 4
목록에 다른 목록에있는 요소가있는 데이터 프레임의 행을 선택하고 싶습니다 external_list = ["dog", "cat"]
.
이 경우 결과는 다른 coulmns와 함께 개 또는 고양이를 포함하는 행이되기를 원합니다.
features other_features
1 ["foo", "dog"] 1
2 ["dog"] 4
나는 isin을 시도했지만 내가 이해하는 바에 따르면 두 개 이상의 객체 목록이 아닌 요소의 열 유형이 필요합니다.
filter = df["features"].isin(["dog", "cat"])
결과적으로 모든 요소가 False가되는데, 일부는 True 여야하므로 나머지 열을 반환하지 않습니다.
어떻게 해결할 수 있습니까?
사용 map
비교 목록은 테스트 세트로 변환 isdisjoint
, ~
역 마스크입니다 :
#if string repr of list
#import ast
#df['features'] = df['features'].apply(ast.literal_eval)
external_list = ["dog", "cat"]
df = df[~df.features.map(set(external_list).isdisjoint)]
print (df)
features other_features
1 [foo, dog] 1
2 [dog] 4
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다