Python 熊猫:为什么DataFrame.drop(labels)返回一个带有删除标签名的DataFrame
当我从DataFrame中删除一些变量时,DataFrame会像我预期的那样返回,除了删除When index.name。为什么会这样 例如:Python 熊猫:为什么DataFrame.drop(labels)返回一个带有删除标签名的DataFrame,python,pandas,Python,Pandas,当我从DataFrame中删除一些变量时,DataFrame会像我预期的那样返回,除了删除When 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
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
问题1。是因为.drop()
方法返回的数据帧具有
默认情况下没有名称的新索引对象?问题2。在删除操作期间,是否仍要保留
索引.name
,因为新索引的名称仍然正确-它只是
原始索引
预期产出将是:
Out[20]:
second d e f
first
a 1 2 3
c 5 6 7
实现预期行为的一种方法是:
row_name = test.index.name
test = test.drop('b')
test.index.name = row_name
但这并不理想 您的意思是要删除
'b'
行,但保留'b'
标签,用于带有[5,6,7]
的行吗?不,我想删除'b'行,但将新数据框中的整个索引保持为与以前相同的名称。(即a,c将被命名为“第一”)请编辑您的问题,以包括您期望的或期望的输出。我认为在您所指的上下文中使用标签这个词很容易混淆。我想你的意思是你想保持索引name
更新以删除标签并使用name。是-index.name是我指的。谢谢