我遇到了一些列的索引问题。当我在python上尝试索引这样的时候:
list(df1.loc[:,1980:1987])
我收到以下错误: TypeError:无法使用
的这些索引器[1980]进行切片索引如果我这样尝试:
list(df1.loc[:,'1980':'1987'])
我收到以下错误:
KeyError:'1980'
dtype是float64。我希望能够在1980-1987列中调用我一年的列标签并删除它们但不调用索引列号而是标记。
谢谢
答案 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