以下に示すように、Pandasデータフレームがあります。
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
import numpy as np
df1 = df.replace(np.nan, '', regex=True)
これは役に立つかもしれません。すべてのNaNを空の文字列に置き換えます。
少し短いです:
df = df.fillna('')
あるいは単に
df.fillna('',inplace=True)
これはna(例:NaN)を ''で埋めます。
単一の列を埋める場合は、次のものを使用できます。
df[column1] = df.column1.fillna('')
df.read_csv(path , na_filter=False)
df.read_Excel(path , na_filter=False)
これは自動的に空のフィールドを空の文字列と見なします ''
df = df.replace(np.nan, '', regex=True)
df = df.fillna('')
印刷時にうまくレンダリングされるようにフォーマットするだけの場合は、フォーマッタを使用します。 DataFrameを不必要に変更したりメモリを無駄にすることなく、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
keep_default_na=False
を使用すると、次のことができます。
df = pd.read_csv(filename, keep_default_na=False)
私は、nanを使用して文字列値の1つの列を試しました。
Nanを削除して空の文字列を埋めるには:
df.columnname.replace(np.nan,'',regex = True)
Nanを削除していくつかの値を入力するには:
df.columnname.replace(np.nan,'value',regex = True)
Df.ilocも試しました。ただし、列のインデックスが必要です。そのため、もう一度テーブルを調べる必要があります。単純に上記の方法は1ステップを削減しました。
これを試して、
inplace=True
を追加
import numpy as np
df.replace(np.NaN, ' ', inplace=True)
DataFrameをJSONに変換している場合、NaN
はエラーになるので、この使用例ではNaN
をNone
に置き換えることが最善の解決策です。
これは次のとおりです。
df1 = df.where((pd.notnull(df)), None)