我只能用切片 window 来切片我的 pandas 数据帧,例如 [0:1] 以获得特定的行,做 [0 会引发 KeyError 为什么?

I can only slice my pandas dataframe with a slicing window such as [0:1] to get a specific row, doing [0 raises a KeyError why?

我有一个数据框 df

type(df) # pandas.core.frame.DataFrame

df[0] # KeyError 0

df[0:1] # Gives row 0 as expected

这是怎么回事?很抱歉,我来自 R 背景,过去曾用 Python 做过一些工作,但认为这是可能的。我错过了什么?

你很接近!如果您使用 .iloc,它将 return 您所期望的。所以对于这种情况你会是

first_row = df.iloc[0]

当您执行 df[0] 时,它正在寻找名为 0 的列。

参考:https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.iloc.html