固定幅のフラットファイルからデータフレームを読み取りたい。これはややパフォーマンスに敏感な操作です。
すべての空白の空白を列の値から削除したいと思います。その空白が削除された後、空白の文字列をNaN
またはNone
値に変換する必要があります。これが私が持っていた2つのアイデアです:
pd.read_fwf(path, colspecs=markers, names=columns,
converters=create_convert_dict(columns))
def create_convert_dict(columns):
convert_dict = {}
for col in columns:
convert_dict[col] = null_convert
return convert_dict
def null_convert(value):
value = value.strip()
if value == "":
return None
else:
return value
また:
pd.read_fwf(path, colspecs=markers, names=columns, na_values='',
converters=create_convert_dict(columns))
def create_convert_dict(columns):
convert_dict = {}
for col in columns:
convert_dict[col] = col_strip
return convert_dict
def col_strip(value):
return value.strip()
2番目のオプションは、na_valuesの前に評価されるコンバーター(空白を取り除く)に依存します。
私は2番目のものがうまくいくかどうか疑問に思いました。私が興味を持っている理由は、保持する方がNoneとは反対NaN
の値を持っているように見えるからです。Null
また、この操作を実行する方法(空白を削除してから、空白の文字列をNaNに変換する方法)に関する他の提案も受け付けています。
現在、パンダがインストールされているコンピューターにアクセスできないため、自分でテストすることはできません。