当我从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)不再是'first'而是None。
Q1。是因为.drop()方法返回一个具有的数据帧 默认情况下没有名称的新索引对象? Q2。在那儿 无论如何要在drop操作期间将index.name保留为new index仍然正确命名 - 它只是一个子集 原始索引
预期产出将是:
Out[20]:
second d e f
first
a 1 2 3
c 5 6 7
答案 0 :(得分:1)
实现预期行为的一种方法是:
row_name = test.index.name
test = test.drop('b')
test.index.name = row_name
但这并不理想。