データをインポートしたDataFrameがあります。しかし、インポートされたデータが正しくない可能性がありますので、私はそれを取り除こうとしています。例のデータフレーム:整数ではなく、指定された数値範囲外のパンダDataFrameから列を削除します
user test1 test2 other
0 foo 1 7 bar
1 foo 2 9 bar
2 foo 3;as 5 bar
3 foo 3 5 bar
は、私が列test1
とtest2
をクリーンアップ取得したいです。私は指定された範囲内にない値と、何らかのエラー(上記のエントリ3;as
)の文字列を含む値を取り除きたい。私は許容値の辞書を定義することによって、これをやっている:
values_dict = {
'test1' : [1,2,3],
'test2' : [5,6,7],
}
と列名のリストをI掃除したい:
headers = ['test1', 'test2']
それが今立っていると私のコード:
# Remove string entries
for i in headers:
df[i] = pd.to_numeric(df[i], errors='coerce')
df[i] = df[i].fillna(0).astype(int)
# Remove unwanted values
for i in values_dict:
df[i] = df[df[i].isin(values_dict[i])]
しかし、誤った値が削除されて、希望するデータフレームが次のようになっていると思われます。
user test1 test2 other
0 foo 1 7 bar
1 foo 3 5 bar
助けてくれてありがとう!
なぜ* test1 == 4 *の行が保持されていますか?許容範囲内でもないのですか? – Psidom
私の一部に入力ミスがありました - ありがとう! – Kam