0

当我从 DataFrame 中删除一些变量时,除了 index.name 被删除时,dataframe 会按预期返回。为什么会这样?

例子:

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.name删除操作期间的操作,因为 newindex 仍然正确命名 - 它只是原始索引的一个子集

预期输出将是:

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

1 回答 1

1

实现预期行为的一种方法是:

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

但这并不理想。

于 2013-02-27T00:56:03.497 回答