私はcsvファイルをPythonにインポートしています。予想どおり、すべての値を文字列としてリストを作成しますが、これを避けたいと思います。この '24'のように見えますが、実際には値がintであることをPythonが検出する方法はありますか?私たちが持っているデータの種類を検出する
ありがとうございます。
私はcsvファイルをPythonにインポートしています。予想どおり、すべての値を文字列としてリストを作成しますが、これを避けたいと思います。この '24'のように見えますが、実際には値がintであることをPythonが検出する方法はありますか?私たちが持っているデータの種類を検出する
ありがとうございます。
ジョブを実行するために、このような関数を記述することができます。 他のデータ型をカバーするように展開できます。
def return_str_type(str):
possible_type = [int, float]
for dtype in possible_type:
try:
str = dtype(str)
break
except:
pass
return type(str).__name__
print(return_str_type('4'))
print(return_str_type('4.3'))
print(return_str_type('s4'))
あなたは順序に注意する必要がありますが、これはOPに
int
float
str
を与えるだろう。例えばint
チェックは常にfloat
より前にする必要があります。
あなたはこれについてevalを必要とせず、クラスを使ってリストを作成し、 'str = dtype(str)'を実行してください。 – Copperfield
あなたの提案に従って更新@Copperfield –
あなたは私にそれを打つことができます。私は、完全な行を除いて、変換されたアイテムのリストを返すという点を除いて、同じことをしました。 '' 'data = map(f、csv.reader)と一緒に使う' '' – wwii
複数のモジュールがサポートしています。その中でpandasです。 read_csv
はデータ型を推論できます。
print ast.literal_eval('[1, 2, 3]') == [1, 2, 3]
print ast.literal_eval('23') == 23
Pythonはまた、非データ型のコマンドも、この機能によって有害な目的のために処理することができますので、しかし、それは安全ではありません、eval
コマンドを持っています。
ありがとう、私はそれを行ってきました、それは値のエラー:不正な文字列が言うが、私は試し続けます。 – plshelp
あなたはどのライブラリを使用していますか?あなたのデータはどのように見えますか? –
の詳細情報が必要になる場合があります。列には文字列が含まれていることがあります。より具体的にする必要があります:コードを見せてください。 –
[this](http://stackoverflow.com/questions/15197673/using-pythons-eval-vs-ast-literal-eval)の回答を参照してください。 – Rockybilly