元のCSVは1行目がヘッダー列となっていると仮定します。
下記は、変更するデータ形式がすべて数値ということが前提です。
import pandas as pd
df_org = pd.read_csv('data1.csv', header=0)
# 読み込んだcsvのうち、欠損値データをわざと文字列に置換しておく。仮に欠損値を「おかしな値」に含めないなれば、この行はdf_src=df_org とするだけでよい。
df_src = df_org.fillna('__NA__')
# データを数値に変換する。
cols = df_src.columns
df_dest = df_src[cols].apply(pd.to_numeric, errors='coerce')
# 「おかしな値」だったデータ位置はTrue, 正常に数値として取り込まれたデータ位置はFalseとしたデータフレームを作る。
df_chk = df_dest.isna()
print(df_chk)
# 元のデータフレームに適用した結果を表示。
print(df_src[df_chk])
以上により
正常に取り込まれなかったセル(すなわち「おかしな値」)は
df_src[df_chk]
から、NaNでないデータとして参照できます。
ただし__NA__
は、元CSVでデータがなかったセルを示します。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/23 09:03
2020/11/23 09:21 編集
2020/11/23 09:27