私はCSVファイルを持っています。その大半は文字列として読みたい値ですが、指定したタイトルの列が存在する場合は、boolとして列を読みたいと思います。パンダread_csv dtype 1以外のすべての列を指定
CSVファイルにはたくさんの列があるので、直接各列にデータ型を指定して、このような何かを与える:
data = read_csv('sample.csv', dtype={'A': str, 'B': str, ..., 'X': bool})
が、それは同時に、文字列の各列のタイプが、1つを定義し、ブール値としてオプションの列を読み込むことは可能ですか?
私の現在のソリューションは、以下の(しかし、それは非常にunefficientと遅いです)です:
data = read_csv('sample.csv', dtype=str) # reads all column as string
if 'X' in data.columns:
l = lambda row: True if row['X'] == 'True' else False if row['X'] == 'False' else None
data['X'] = data.apply(l, axis=1)
UPDATE: サンプルCSV:
'X' の列なしA;B;C;X
a1;b1;c1;True
a2;b2;c2;False
a3;b3;c3;True
、または同じ缶BA (列がオプションなので):
A;B;C
a1;b1;c1
a2;b2;c2
a3;b3;c3
ありがとうございます!私のソリューションよりもはるかに高速です! – user1802693
その解決には非常に大きな問題があります.False値をTrue値に設定します。長さがゼロでない文字列はTrueとして解析されます。 – user1802693
あなたは絶対に正しいので、回答を編集します。 – jezrael