programing

팬더, 빈 끈으로 NaN 대체

randomtip 2022. 12. 1. 23:34
반응형

팬더, 빈 끈으로 NaN 대체

아래와 같은 Panda Dataframe을 가지고 있습니다.

    1    2       3
 0  a  NaN    read
 1  b    l  unread
 2  c  NaN    read

다음과 같이 빈 문자열로 NaN 값을 삭제합니다.

    1    2       3
 0  a   ""    read
 1  b    l  unread
 2  c   ""    read
df = df.fillna('')

아니면 그냥

df.fillna('', inplace=True)

이것은 Na(예: NaN)를 다음과 같이 채운다.''.

단일 열을 채우려면 다음을 사용할 수 있습니다.

df.column1 = df.column1.fillna('')

사용할 수 있다df['column1']대신df.column1.

import numpy as np
df1 = df.replace(np.nan, '', regex=True)

이게 도움이 될 거야모든 NaN이 빈 문자열로 대체됩니다.

파일(CSV 또는 Excel 등)에서 데이터 프레임을 읽는 경우 다음을 사용합니다.

df.read_csv(path , na_filter=False)
df.read_excel(path , na_filter=False)

그러면 빈 필드가 자동으로 빈 문자열로 간주됩니다.''


데이터 프레임이 이미 있는 경우

df = df.replace(np.nan, '', regex=True)
df = df.fillna('')

인쇄올바르게 렌더링되도록 포맷하는 경우에만 포맷터를 사용하십시오.를 사용합니다.df.to_string(... formatters데이터 프레임을 불필요하게 변경하거나 메모리를 낭비하지 않고 커스텀 문자열 포맷을 정의하려면 다음과 같이 하십시오.

df = pd.DataFrame({
    'A': ['a', 'b', 'c'],
    'B': [np.nan, 1, np.nan],
    'C': ['read', 'unread', 'read']})
print df.to_string(
    formatters={'B': lambda x: '' if pd.isnull(x) else '{:.0f}'.format(x)})

입수 방법:

   A B       C
0  a      read
1  b 1  unread
2  c      read

이거 드셔보세요.

더하다inplace=True

import numpy as np
df.replace(np.NaN, '', inplace=True)

사용.keep_default_na=False도움이 됩니다.

df = pd.read_csv(filename, keep_default_na=False)

Data Frame을 JSON으로 변환하는 경우NaN오류가 발생하므로 이 사용 예에서 가장 좋은 해결책은 교환하는 것입니다.NaN와 함께None.
방법은 다음과 같습니다.

df1 = df.where((pd.notnull(df)), None)

문자열 값 열 하나를 nan으로 시도했습니다.

nan을 제거하고 빈 문자열을 채우려면:

df.columnname.replace(np.nan,'',regex = True)

nan을 제거하고 일부 값을 채우려면:

df.columnname.replace(np.nan,'value',regex = True)

df.iloc도 해봤어요.열 색인이 필요해요테이블을 다시 들여다보셔야 합니다.위의 방법은 단순히 한 단계만 줄였다.

언급URL : https://stackoverflow.com/questions/26837998/pandas-replace-nan-with-blank-empty-string

반응형