web-dev-qa-db-ja.com

pandas最初の列と行をインデックスとして設定するには?

CSVを読み込むと、pd.read_csv('my.csv', index_col=3)と言うことができ、3番目の列がインデックスとして設定されます。

メモリ内にpandasデータフレームがある場合、どうすれば同じことができますか?また、最初の行をインデックスとして使用すると言うにはどうすればよいですか?最初の列と行は文字列で、残りは行列は整数です。

21
Oli

行数に関係なくこれを試すことができます

df = pd.read_csv( 'data.csv'、index_col = 0)

9
Y. Yazarel

たぶんset_index()を試してください?

df = df.set_index([2])
9
Annie Guo

最初の(またはn番目の)列を冗長性の高い順にインデックスにします。

df.set_index(list(df)[0])
df.set_index(df.columns[0])
df.set_index(df.columns.tolist()[0])

最初の(またはn番目の)行をインデックスにする:

df.set_index(df.iloc[0].values)

マルチレベルのインデックスが必要な場合は、両方を使用できます。

df.set_index([df.iloc[0], df.columns[0]])

列をインデックスとして使用すると、自動的に列として削除されることに注意してください。行をインデックスとして使用することは単なるコピー操作であり、DataFrameから行を削除しません。

2
villasv