我对pandas的iloc函数有些困惑,因为我想选择一系列列,并且输出与预期的不同。行选择也会发生同样的情况,所以我写了一个小例子:
template = pd.DataFrame(
{'Headline': ['Subheading', '', 'Animal', 'Tiger', 'Bird', 'Lion'],
'Headline2': ['', 'Weight', 2017, 'group1', 'group2', 'group3'],
'Headline3': ['', '', 2018, 'group1', 'group2', 'group3']
})
Headline Headline2 Headline3
0 Subheading
1 Weight
2 Animal 2017 2018
3 Tiger group1 group1
4 Bird group2 group2
5 Lion group3 group3
我想用print(template.loc[1:2])
选择第1行到第2行,结果是我所期望的:
Headline Headline2 Headline3
1 Weight
2 Animal 2017 2018
如果我这样做print(template.iloc[1:2])
,我会认为我得到了相同的结果,但没有:
Headline Headline2 Headline3
1 Weight
我有点困惑,因为我期望两个函数的行为相同,但是如果我选择一个范围(FROM:TO),两个函数的输出会有所不同。
似乎使用iloc必须具有TO值+1才能获得与loc print(template.iloc[1:3])
相同的结果:
Headline Headline2 Headline3
1 Weight
2 Animal 2017 2018
有人可以照亮它吗?
答案 0 :(得分:3)