반응형
"not in"조건에 따라 데이터 프레임에서 행 삭제
날짜 열의 값이 날짜 목록에있을 때 pandas 데이터 프레임에서 행을 삭제하고 싶습니다. 다음 코드는 작동하지 않습니다.
a=['2015-01-01' , '2015-02-01']
df=df[df.datecolumn not in a]
다음과 같은 오류가 발생합니다.
ValueError : 시리즈의 진실 값이 모호합니다. a.empty, a.bool (), a.item (), a.any () 또는 a.all ()을 사용하십시오.
사용할 수 있습니다 .pandas.Dataframe.isin
pandas.Dateframe.isin
각 요소가 목록에 있는지 여부에 따라 부울 값을 반환합니다 a
. 그런 다음이를 사용 하여 ~
변환 True
하여 변환 False
합니다.
import pandas as pd
a = ['2015-01-01' , '2015-02-01']
df = pd.DataFrame(data={'date':['2015-01-01' , '2015-02-01', '2015-03-01' , '2015-04-01', '2015-05-01' , '2015-06-01']})
print(df)
# date
#0 2015-01-01
#1 2015-02-01
#2 2015-03-01
#3 2015-04-01
#4 2015-05-01
#5 2015-06-01
df = df[~df['date'].isin(a)]
print(df)
# date
#2 2015-03-01
#3 2015-04-01
#4 2015-05-01
#5 2015-06-01
다음을 사용할 수 있습니다 .Series.isin
df = df[~df.datecolumn.isin(a)]
메시지는 오류 사용할 수 있다고 제안 all()
하거나 any()
사용할 수 있지만 결과를 one-부울 값으로 줄이려는 경우에만 유용합니다. 그러나 모든 외부 목록에 대해 시리즈의 값의 멤버십을 테스트하고 결과를 그대로 유지하는 것입니다 (즉, 원래 DataFrame을 사용하는 데 사용되는 부울 시리즈). ).
이에 대한 자세한 내용은 Gotchas 에서 읽을 수 있습니다 .
반응형
'ProgramingTip' 카테고리의 다른 글
JSON 객체를 JavaScript 배열로 변환하는 방법 (0) | 2020.11.30 |
---|---|
Tesseract 실행 오류 (0) | 2020.11.30 |
그래프에서 노드를 제거하거나 전체 기본 그래프를 제거하거나 (0) | 2020.11.30 |
Perl에서 호출 스택 목록을 얻으려면 어떻게해야합니까? (0) | 2020.11.30 |
PHP에서 사용할 압축 방법은 무엇입니까? (0) | 2020.11.30 |