0

DataFrame からいくつかの変数を削除すると、index.name が削除された場合を除いて、期待どおりにデータフレームが返されます。これはなぜでしょうか?

例:

test = pd.DataFrame([[1,2,3],[3,4,5],[5,6,7]], index=['a','b','c'], columns=['d','e','f'])
test

Out[20]:
second  d   e   f
first           
a   1   2   3
b   3   4   5
c   5   6   7
#test.index.name = first
#test.columns.name=second
In [27]:

test.drop(['b'])

Out[27]:
second  d   e   f
a   1   2   3
c   5   6   7

「b」がドロップされた後、返されたデータフレーム(index.name)は「最初」ではなく、なしになります。

Q1. .drop()メソッドが、デフォルトでは名前のない新しいインデックスオブジェクトを持つデータフレームを返すためですか?
Q2. index.namenewindex はまだ正しく名前が付けられているため、ドロップ操作中に保持する方法はありますか?これは元のインデックスのサブセットにすぎません

予想される出力は次のようになります。

 Out[20]:
    second  d   e   f
    first           
    a   1   2   3
    c   5   6   7
4

1 に答える 1

1

意図した動作を実現する 1 つの方法は次のとおりです。

row_name = test.index.name
test = test.drop('b')
test.index.name = row_name

しかし、これは理想的ではありません。

于 2013-02-27T00:56:03.497 に答える