[解決済み] Pandas read_csv dtype は全てのカラムを読みますが、一部のカラムは文字列として読みます。
質問
Pandasを使ってCSVを大量に読み込んでいます。dtypeパラメータにoptions jsonを渡して、どの列をデフォルトではなく文字列として読み込むかをpandasに教えています。
dtype_dic= { 'service_id':str, 'end_date':str, ... }
feedArray = pd.read_csv(feedfile , dtype = dtype_dic)
私のシナリオでは
全て
の場合、いくつかの特定のカラムを除いて、カラムは文字列として読み込まれます。したがって、いくつかのカラムを
dtype_dic
でいくつかのカラムをstrとして定義する代わりに、私は選んだいくつかのカラムだけをintまたはfloatとして設定したいのです。それを行う方法はありますか?
異なるカラムを持つ様々なCSVを循環させるループなので、csv全体を文字列として読み込んだ後に直接カラムを変換する (
dtype=str
として読み込んだ後、直接カラムを変換するのは簡単ではありません。(むしろ、dtype jsonですべてのカラムを定義することにその労力を費やしたい!)
編集:しかし、もしそのcsvにカラムが存在しない場合、エラーにならずに数値に変換するカラム名のリストを処理する方法があるのなら、csv読み込み段階自体でこれを行う他の方法がないのなら、それは有効な解決策になるでしょうね。
注意: この音は のように聞こえますが、これは以前に質問された のようですが、その回答はこの質問には当てはまらない非常に異なる道(ブールに関連する)を進んでいました。Plsは重複としてマークしないでください!
解決する方法は?
EDIT - すみません、私はあなたの質問を間違って読んでいました。私の答えを更新しました。
csv全体を文字列として読み込んで、後から必要な列を他の型に変換することは、このように可能です。
df = pd.read_csv('/path/to/file.csv', dtype=str)
# example df; yours will be from pd.read_csv() above
df = pd.DataFrame({'A': ['1', '3', '5'], 'B': ['2', '4', '6'], 'C': ['x', 'y', 'z']})
types_dict = {'A': int, 'B': float}
for col, col_type in types_dict.items():
df[col] = df[col].astype(col_type)
ファイルを読み込むときにすべての列の適切な型を指定し、後でそれを変更したくない場合は、別の方法を使用します。列名だけを読み込み(行は含まない)、それを使用してどの列が文字列になるべきかを記入するのです。
col_names = pd.read_csv('file.csv', nrows=0).columns
types_dict = {'A': int, 'B': float}
types_dict.update({col: str for col in col_names if col not in types_dict})
pd.read_csv('file.csv', dtype=types_dict)
関連
-
[解決済み] Pandas read_csv low_memory と dtype オプション。
-
[解決済み] Pandasのデータフレームで複数の列を選択する
-
[解決済み] pandasを使った "大量データ "ワークフロー【終了しました
-
[解決済み] CSVの列に、書式を崩さずにカンマを入れる方法はありますか?
-
[解決済み】Pandas DataFrameのより多くの列を見るために出力表示を拡大する方法は?
-
[解決済み] pandasのデータフレーム列をsklearnでスケーリングする
-
[解決済み] pandas.read_csvが空の値をnanではなく空文字列として読み込むようにする。
-
[解決済み] 小数点以下1桁を取得する[重複]。
-
[解決済み] PythonからSMTPを使用してメールを送信する
-
[解決済み] Django で全てのリクエストヘッダを取得するにはどうすれば良いですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Pythonのキャッシュライブラリはありますか?
-
[解決済み] Pythonの構文に新しいステートメントを追加することはできますか?
-
[解決済み] Django のテストデータベースをメモリ上だけで動作させるには?
-
[解決済み] Python 3でバイナリデータを標準出力に書き込むには?
-
[解決済み] Pythonで0xを使わずにhex()を使うには?
-
[解決済み] pandasのタイムゾーンに対応したDateTimeIndexを、特定のタイムゾーンに対応したナイーブなタイムスタンプに変換する。
-
[解決済み] Flask でグローバル変数はスレッドセーフか?リクエスト間でデータを共有するには?
-
[解決済み] Pythonの検索パスを他のソースに展開する
-
[解決済み] Pythonの辞書にあるスレッドセーフについて
-
[解決済み] 認証プラグイン 'caching_sha2_password' はサポートされていません。