[pandas] Pandas 데이터 프레임에서 None을 NaN으로 바꿉니다.

나는 테이블이있다 x:

        website
0   http://www.google.com/
1   http://www.yahoo.com
2   None

python None을 pandas NaN으로 바꾸고 싶습니다. 나는 시도했다 :

x.replace(to_replace=None, value=np.nan)

그러나 나는 얻었다 :

TypeError: 'regex' must be a string or a compiled regular expression or a list or dict of strings or regular expressions, you passed a 'bool'

어떻게해야합니까?



답변

DataFrame.fillna또는 문자열이 아닌 Series.fillnaPython 객체를 대체 할 수 있습니다 .None'None'

import pandas as pd
import numpy as np

데이터 프레임의 경우 :

df = df.fillna(value=np.nan)

열 또는 시리즈의 경우 :

df.mycol.fillna(value=np.nan, inplace=True)


답변

또 다른 옵션이 있습니다.

df.replace(to_replace=[None], value=np.nan, inplace=True)


답변

다음 줄은 다음으로 대체 None됩니다 NaN.

df['column'].replace('None', np.nan, inplace=True)


답변

df.replace ([None], np.nan, inplace = True)를 사용하면 누락 된 데이터가있는 모든 datetime 개체가 개체 dtypes로 변경되었습니다. 따라서 데이터 크기에 따라 부담이 될 수있는 datetime으로 다시 변경하지 않는 한 쿼리가 손상되었을 수 있습니다.

이 방법을 사용하려면 먼저 df에서 객체 dtype 필드를 식별 한 다음 None을 대체 할 수 있습니다.

obj_columns = list(df.select_dtypes(include=['object']).columns.values)
df[obj_columns] = df[obj_columns].replace([None], np.nan)


답변

DataFrame['Col_name'].replace("None", np.nan, inplace=True)


답변