因此,df['date']
返回:
0 2018-03-01
1 2018-03-01
2 2018-03-01
3 2018-03-01
4 2018-03-01
...
469796 2018-06-20
469797 2018-06-20
469798 2018-06-27
469799 2018-06-27
469800 2018-12-06
Name: date, Length: 469801, dtype: datetime64[ns]
并且,df['date'].sort_values()
返回:
137241 2018-01-01
378320 2018-01-01
247339 2018-01-01
34333 2018-01-01
387971 2018-01-01
...
109278 2018-12-06
384324 2018-12-06
384325 2018-12-06
109282 2018-12-06
469800 2018-12-06
Name: date, Length: 469801, dtype: datetime64[ns]
现在df['date'].sort_values()[0]
“忽略排序”并返回:
Timestamp('2018-03-01 00:00:00')
而df['date'].sort_values()[0:1]
实际上返回:
137241 2018-01-01
Name: date, dtype: datetime64[ns]
为什么明显不一致的行为?正如@cs95准确指出的,它们分别返回一个标量和一个级数,这是可以的。我对这个值感到困惑,第一个是2018-03-01
,而第二个是2018-01-01
。你知道吗
提前谢谢。你知道吗
类似于:why sort_values() is diifferent form sort_values().values
对于标量索引和切片,熊猫的索引解释方式略有不同。举个简单的例子:
还要注意
sort_values
的结果:当您调用
df['col1'].sort_values()[0]
时,实际上会得到由键0
索引的值。这里它隐式地调用loc
:当使用索引进行切片时,假设它们是整数而不是标签,这意味着它隐式地调用
iloc
:如果希望标量索引操作返回与切片相同的内容,请使用
iloc
或iat
(单数值):相关问题 更多 >
编程相关推荐