팬더 - 값 없음 필터링
팬더를 이용해 데이터셋을 탐색하고 있습니다.데이터 프레임은 다음과 같습니다.
열에 값이 있는 행은 제외합니다.City
. 그래서 해봤습니다.
new_df = all_df[(all_df["City"] == "None") ]
new_df
그런데 빈 데이터 프레임이 나왔습니다.
다른 값을 사용할 때마다 작동합니다.None
. 이 데이터 프레임을 필터링하는 방법을 알고 계십니까?
사용을 고려합니다.isnull()
결측값을 찾아내다
all_df[all_df['City'].isnull()]
이 방법을 사용하여 다음 항목만 선택합니다.None
도시 열에 대한 값:
new_df = all_df['City'][all_df['City'] == "None"]
동일한 행을 가진 다른 모든 열을 보려면 이 작업을 수행합니다.'City'==None
new_df = all_df[all_df['City'] == "None"]
print(new_df.head()) # with function head() you can see the first 5 rows
None
는 문자열이 아닌 키워드이므로 따옴표를 사용하지 마십시오.None == None
주는True
, 사용자 지정 클래스에서는 비교 연산자를 무시할 수 있으므로 사용하는 것이 더 안전합니다.is None
.팬더가 그 기능을 제공합니다.그래서 제안합니다.
new_df = all_df[all_df['City'].isna()]
또 다른 방법은 다음과 같은 방법을 사용하는 것입니다.
In [3]: all_df.query('City != City')
Out[3]:
FACTS_Value Region City Village
0 34135.0 Al Bahah None None
해당 열 이름이 지정된 없음을 제외한 모든 값을 추출하는 메서드입니다.
df = df[df.columnname.notna()]
나는 희망합니다.where
" 당신이 기대하는 것을 할 수 있습니다.
new_df = new_df.where(new_df["city"], None)
그리고 사용하는게 더 좋습니다.np.nan
보다는None
.
자세한 내용은 팬더.DataFrame.where
None 값으로 여러 행을 필터링하려면 다음을 사용할 수 있습니다.any
,all
아니면sum
. 예를 들어, 의 경우df
아래에 제시된 바와 같이:
FACTS_Value Region City Village
0 16482 Al Bahah None None
1 22522 Al Bahah Al Aqiq None
2 12444 Al Bahah Al Aqiq Al Aqiq
3 12823 Al Bahah Al Bahah Al Aqiq
4 11874 None None None
하나 이상의 열에서 None 값을 가진 모든 행을 선택하려면 다음을 사용할 수 있습니다.isna
+any
축에서 부울 마스크를 작성합니다.
msk = df.isna().any(axis=1)
out = df[msk]
출력:
FACTS_Value Region City Village
0 16482 Al Bahah None None
1 22522 Al Bahah Al Aqiq None
4 11874 None None None
숫자가 아닌 모든 열 값이 None인 행을 원한다면 다음을 사용할 수 있습니다.isna
+all
축:
msk = df.select_dtypes(exclude='number').isna().all(axis=1)
아니면
msk = df[['Region', 'City', 'Village']].isna().all(axis=1)
out = df[msk]
출력:
FACTS_Value Region City Village
4 11874 None None None
우리가 정확히 다음과 같은 행을 필터링하려면n
값이 없으면, 우리가 사용할 수 있습니다.sum
축 + 위에eq
:
msk = df.isna().sum(axis=1) == 2
out = df[msk]
출력:
FACTS_Value Region City Village
0 16482 Al Bahah None None
기븐, 어디서None
python 입니다.None
,것은 아니다.'None'
:
FACTS_Value Region City Village
0 16482 Al Bahah None None
1 22522 Al Bahah Al Aqiq None
2 12444 Al Bahah Al Aqiq Al Aqiq
3 12823 Al Bahah Al Bahah Al Aqiq
4 11874 None None None
고치기None
값:
df = df.fillna(np.nan)
이제 다음이 예상대로 작동합니다.
df[df.City.isna()]
언급URL : https://stackoverflow.com/questions/45117272/pandas-filtering-none-values
'programing' 카테고리의 다른 글
주 번호에서 날짜 가져오기 (0) | 2023.10.03 |
---|---|
함수 포인터를 반환하는 함수에 대한 C 구문 (0) | 2023.10.03 |
PL/SQL에서 돌아오는 커서를 닫는 방법은? (0) | 2023.10.03 |
브라우저 콘솔에서 http 오류가 기록되지 않도록 방지 (0) | 2023.10.03 |
jQuery에서 serialized form data를 수정하려면 어떻게 해야 합니까? (0) | 2023.10.03 |