64

データテーブルがあるとします

    1  2  3  4  5  6 ..  n
A   x  x  x  x  x  x ..  x
B   x  x  x  x  x  x ..  x
C   x  x  x  x  x  x ..  x

そして、たとえば列 3 と列 5 だけを残して他のすべてを削除し、構造を維持するように、それをスリムにしたいと考えています。パンダでこれを行うにはどうすればよいですか?単一の列を削除する方法は理解していると思いますが、選択したいくつかを保存して他のすべてを削除する方法がわかりません。

4

4 に答える 4

107

列のリストがある場合は、それらを選択するだけです:

In [11]: df
Out[11]:
   1  2  3  4  5  6
A  x  x  x  x  x  x
B  x  x  x  x  x  x
C  x  x  x  x  x  x

In [12]: col_list = [3, 5]

In [13]: df = df[col_list]

In [14]: df
Out[14]:
   3  5
A  x  x
B  x  x
C  x  x
于 2013-05-17T19:24:38.180 に答える
12

DataFrame,に新しい値を再割り当てできますdf

df = df.loc[:,[3, 5]]

元の への他の参照がない限りDataFrame、古いものDataFrameはガベージ コレクションされます。

df.locを使用する場合、インデックスはlabelsで指定されることに注意してください。したがって、上記の35は序数ではなく、列のラベル名を表します。序数インデックスで列を指定する場合は、 を使用しますdf.iloc

于 2013-05-17T19:03:20.483 に答える