以下に示すようなPandas 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
以下に示すようなPandas 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
回答:
import numpy as np
df1 = df.replace(np.nan, '', regex=True)
これは役立つかもしれません。すべてのNaNを空の文字列に置き換えます。
import numpy as np
。
pd.np.nan
たくない場合import numpy
。
pd.DataFrame.from_dict(eval(_string_))
... inplace=True
オプションについて言及するのにも役立ちます。
ファイル(たとえば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('')
xl.parse('sheet_name', na_filter=False)
印刷時にうまくレンダリングされるようにフォーマットするだけの場合は、フォーマッターを使用します。df.to_string(... formatters
DataFrameを不必要に変更したりメモリを浪費したりせずに、カスタム文字列フォーマットを定義するために使用するだけです。
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
print df.fillna('')
単独では(を実行df = df.fillna('')
せずに)、元のファイルも変更されません。使用する速度や他の利点はありto_string
ますか?
df.fillna('')
ですよ!
DataFrameをJSONに変換する場合NaN
、エラーが発生するので、このユースケースでの最善の解決策はで置き換えるNaN
ことNone
です。
方法は次のとおりです。
df1 = df.where((pd.notnull(df)), None)
私はnanで文字列値の1列を試してみました。
ナンを削除して空の文字列を入力するには:
df.columnname.replace(np.nan,'',regex = True)
ナンを削除していくつかの値を入力するには:
df.columnname.replace(np.nan,'value',regex = True)
私もdf.ilocを試しました。ただし、列のインデックスが必要です。したがって、もう一度テーブルを調べる必要があります。単純に、上記の方法は1つのステップを削減しました。
np.nan
から来たのですか?使用できません