.map()
を使用して、DataFrame内で列のデータ型をtype: object
からtype: int64
に変更しようとしています。これが正常に完了しPandas DataFrameの列タイプをint64に変更
def convert_to_int_with_error(x):
if not x in ['', None, ' ']:
try:
return np.int64(x)
except ValueError as e:
print(e)
return None
else:
return None
if not type(x) == np.int64():
print("Not int64")
sys.exit()
:
df['one'] = df['one'].map(convert_to_int_with_error)
は、ここに私の関数です。私が完了した後にデータの種類を確認する場合しかし、それはtype: float
に戻ります:
print("%s is a %s after converting" % (key, df['one'].dtype))
はどこ正確には'(x)は== np.int64を入力しない場合は()を入れたのですか?あなたは 'convert_to_int_with_error'が決して' None'を返さないと言っていますか? – unutbu
数値コンテナの場合、 'None'は' float'(数値)dtypeを維持するために 'NaN'とみなされます。そのような欠損値/空の文字列を処理する方法を見つける必要があります。その結果、 'np.int64' dtypeとなります。 –