Pandas-Python中的.loc索引

时间:2016-11-08 17:56:26

标签: python pandas

我遇到了一些列的索引问题。当我在python上尝试索引这样的时候:

list(df1.loc[:,1980:1987])

我收到以下错误: TypeError:无法使用

的这些索引器[1980]进行切片索引

如果我这样尝试:

list(df1.loc[:,'1980':'1987'])

我收到以下错误:

KeyError:'1980'

dtype是float64。我希望能够在1980-1987列中调用我一年的列标签并删除它们但不调用索引列号而是标记。

谢谢

1 个答案:

答案 0 :(得分:0)

切片适用于列,无论其类型如何。请参阅以下示例。也许,你必须检查你的数据和/或提供一个例子。

# Test data
df = pd.DataFrame({'1980': ['A', 'B'], 
                   '1981': ['A', 'B'], 
                   '1982': ['A', 'B']})

# With string
print(df.columns.dtype)
print(df.loc[:,'1980':'1981'])

# object
#   1980 1981
# 0    A    A
# 1    B    B

# With integer
df.columns = df.columns.astype('int')
print(df.columns.dtype)
print(df.loc[:,1980:1981])

# int64
#   1980 1981
# 0    A    A
# 1    B    B

# With float
df.columns = df.columns.astype('float')
print(df.columns.dtype)
print(df.loc[:,1980:1981])

# float64
#   1980.0 1981.0
# 0      A      A
# 1      B      B