これは、うまくいけばより意味のある私の質問の言い直されたバージョンです:
暗黙的read_csv
なインデックス (つまり、ファイルの最初の列にヘッダーがない) を使用すると、すべてが機能し、インデックスがファイルの最初の列 (暗黙的なインデックス列) であるデータフレームが取得されます。
ただし、usecols
への引数として指定するread_csv
と、暗黙的なインデックス列は無視され、返されるデータフレームには pandas によって作成された標準インデックス (0、1、2、3 など) が含まれます。
リストのインデックス列を明示的に渡して引数usecols
を指定することはできませんindex_col
。これは、暗黙的なインデックス列にはヘッダーがないためです (これが、パンダが暗黙的なインデックスであることを認識する方法です)。
これを回避する方法はありますか?
元の質問は次のとおりです。
名前のない行インデックスの列を持つ csv ファイルを読み取ろうとしています。残りの列には名前が付けられています。
|head1|head2|
index1 | data1 | data2 |
usecols を使用して特定の数の列を読み取るときに、行インデックスも含めたいと考えています。ただし、これらには名前が付けられていないため、usecols のリストに文字列を含めることはできません。
整数インデックスと文字列の組み合わせを試してみました (たとえばusecols = [0, 'header1', 'header2']
、これはうまくいかないようです。
単純ind_col
に 0 を指定すると、選択範囲の最初の列がインデックス列として使用されます。
では、ファイル内の最初の名前のない列を行インデックスとして保持しながら、(usecols を介して) 名前列の選択を読み取るにはどうすればよいでしょうか?