私は、データを読み出すたデータセット、df.dir.value_counts()
戻りパンダ:非整数データをドロップし
169 23042
170 22934
168 22873
316 22872
315 22809
171 22731
317 22586
323 22561
318 22530
...
0.069 1
0.167 1
0557 1
0.093 1
1455 1
0.130 1
0.683 1
2211 1
3.714 1
1.093 1
0819 1
0.183 1
0.110 1
2241 1
0.34 1
0.330 1
0.563 1
60+9 1
0.910 1
0.232 1
1410 1
0.490 1
0.107 1
1.257 1
1704 1
0.491 1
1.180 1
5-230 1
1735 1
1.384 1
dir
列が方向についてであるがあり、データが(0361)の範囲の整数でなければなりません。ご覧のとおり、value_counts()
リストの最後には多くのエロナスデータがあります。
私が知りたいのは、どのように非整数データを削除できますか?
いくつかの可能な方法
1.整数としてread_csv
とスローすべての非整数データ
df = pd.read_csv("/data.dat", names = ['time', 'dir'], dtype={'dir': int}})
があり、そこにエラーデータのようないくつかの文字列など60+9
、希望エラーの原因となります。私はそれをどう扱うかわかりません。
2.Select isdigit()
ことで、その後は何意気消沈
df = df[df['dir'].apply(lambda x: str(x).isdigit())]
df['dir']=pd.to_numeric(df['dir'], downcast='integer', errors='coerce')
これはDrop rows if value in a specific column is not an integer in pandas dataframeからである、と私のために正常に動作しますが、それはあまりにも少し感じています。より良いアプローチがあるのだろうか?
この列には 'string'型がありますが、これは' // 'であれば分かりませんか? – cqcn1991
@ cqcn1991更新を参照 – piRSquared
@piRSquared - フロア分割がいい – jezrael