我有一个名为 data_match 的Pandas数据框。它包含列'_worker_id','_ unit_id'和'caption'。 (请参阅此数据框中某些行的附加屏幕截图)
假设索引列不是按升序排列的(我希望索引为0,1,2,3,4 ... n),我希望它按升序排列。所以我运行以下函数试图重置索引列:
的 data_match = data_match.reset_index(降= TRUE)
我能够使用Python 3.6在我的计算机中返回正确的输出。但是,当我的同事使用Python 3.6在他的计算机中运行该功能时,“_ worker_id”列被删除了。
这是由于“ reset_index ”旁边的“(drop = True)”条款吗?但我不知道为什么它在我的电脑上有效,而不是在同事的电脑上。有人可以提供建议吗?
答案 0 :(得分:3)
俗话说,"你的口译员会发生什么事情 解释器&#34 ;.没有看到这种差异就无法解释这种差异 输入两个Python交互式会话的完整命令历史记录。
然而,有可能猜测:
df.reset_index(drop=True)
删除DataFrame的当前索引并将其替换为索引
增加整数。它从不丢弃列。
因此,在您的互动会话中,_worker_id
是一个专栏。在你的同事中
交互式会话,_worker_id
必须是索引级别。
视觉差异可能有些微妙。例如,下面,df
有一个
_worker_id
df2
列,而_worker_id
的索引级别为In [190]: df = pd.DataFrame({'foo':[1,2,3], '_worker_id':list('ABC')}); df
Out[190]:
_worker_id foo
0 A 1
1 B 2
2 C 3
In [191]: df2 = df.set_index('_worker_id', append=True); df2
Out[191]:
foo
_worker_id
0 A 1
1 B 2
2 C 3
:
_worker_id
请注意,foo
名称foo
在str
下方显示为一行
索引级别,当它是列时与repr
在同一行。这是唯一的
在查看DataFrame的_worker_index
或df.reset_index(drop=True)
时,您会看到直观的线索。
重复:当In [194]: df.reset_index(drop=True)
Out[194]:
_worker_id foo
0 A 1
1 B 2
2 C 3
是列时,列不受影响
_worker_index
:
In [195]: df2.reset_index(drop=True)
Out[195]:
foo
0 1
1 2
2 3
但是当Navigator
成为索引的一部分时会被删除:
Widget build() {
return auth.currentUser == null ? new SignInPage() : new HomePage();
}