i2=df.index['a':'c'].copy()
虽然我们可以通过指定如下行号来提取索引部分的副本: I1 = df.index [1:3] .copy()
不幸的是,我们无法通过指定密钥来提取索引部分的副本(就像df.loc方法一样)。当我尝试以下内容时:
TypeError: slice indices must be integers or None or have an __index__ method
我收到以下错误:
import csv
data = []
with open('input.csv') as f_input:
for row in csv.reader(f_input):
data.append((row[5], float(row[4])))
gt_user = raw_input("Enter user you want to search for: ")
total = 0
for name, number in data:
if gt_user == name:
print "Found {}, number is {}".format(name, number)
total += number
print "Total for {} is {}".format(gt_user, total)
是否可以根据其键调用索引的子集?谢谢
答案 0 :(得分:2)
最简单的是loc
i1 = df.loc['b':'c'].index
print (i1)
Index(['b', 'c'], dtype='object')
:
i1 = df.index
i1 = i1[i1.get_loc('b') : i1.get_loc('d') + 1]
print (i1)
Index(['b', 'c'], dtype='object')
或者可以使用get_loc
作为职位:
i1 = i1[i1.get_loc('b') : i1.get_loc('d') + 1]
print (i1)
Index(['b', 'c', 'd'], dtype='object')
i1 = i1[i1.searchsorted('b') : i1.searchsorted('d') + 1]
print (i1)
Index(['b', 'c', 'd'], dtype='object')
替代:
.loc
答案 1 :(得分:1)
尝试使用i2 = df.loc['a':'c'].index
print(i2)
,请参阅此documentation:
Index(['a', 'b', 'c'], dtype='object')
输出:
df.loc['a':'c'].index.tolist()
或
['a', 'b', 'c']
输出:
ON()