首页 > 解决方案 > pandas数据框中df.loc第一个参数的范围和单个值之间的差异

问题描述

要在熊猫数据框中选择一列,我应该使用

df.loc[3:3, :]

或者

df.loc[3, :]

它们并不完全等效,因为第一个在 Jupyter 中显示表格,而第二个则没有。

标签: pythonpandasdataframe

解决方案


df.loc[3:3, :]表示,以 Dataframe 形式打印索引为 3 的行。

df.loc[3, :]表示,以系列形式打印索引为 3 a 的行。

让我们以DataFrame 为例

df = pd.DataFrame({'time':[1,5,10,12,15,18],'shift':['A','B','C','D','E','F']})

这就是 DataFrame 的外观:

  shift  time
0     A     1
1     B     5
2     C    10
3     D    12
4     E    15
5     F    18

现在让我们一一执行您的语句:

##1st code:
df.loc[3:3, :]

  shift time
3   D   12

 
##2nd code:
df.loc[3, :]

shift     D
time     12
Name: 3, dtype: object

为什么因为我们在这里的第一个代码中指定了一个切片范围,df.loc[3:3, :]尽管我们给出了一个范围,3:3该范围将只打印具有第三个索引的行。在第二个代码df.loc[3, :]中没有范围,因此它将以系列形式打印。


推荐阅读