パンダにはこれらの種類の列を変換するためのツールがいくつかありますが、ニーズに合っていない可能性があります。 pd.to_numeric
はあなたのような混在した列を変換しますが、数字以外の文字列はNaN
に変換します。つまり、floatカラムはNaN
の値を持つことができるので、整数ではなくfloatカラムを取得します。それは通常はそれほど重要ではありませんが、意識するのは良いことです。
df = pd.DataFrame({'mixed_types': [12331, '345', 'text']})
pd.to_numeric(df['mixed_types'], errors='coerce')
Out[7]:
0 12331.0
1 345.0
2 NaN
Name: mixed_types, dtype: float64
あなたは、すべてのNaN
行をドロップしたい場合は
:
# Replace the column with the converted values
df['mixed_types'] = pd.to_numeric(df['mixed_types'], errors='coerce')
# Drop NA values, listing the converted columns explicitly
# so NA values in other columns aren't dropped
df.dropna(subset = ['mixed_types'])
Out[11]:
mixed_types
0 12331.0
1 345.0
読み込み後にNaNが作成されるため、na_values = 'NaN'に設定してdrop_naを実行すると、これらの値は削除されますか? – devil0150
@ devil0150変換したら、 'dropna()'をやるのは難しくない、編集を参照してください – Marius
'$ 1.00'通貨では機能しませんでした。 : – xtian