Python 我可以在某个列值上使用数据框读取一系列行吗?
这是我的数据Python 我可以在某个列值上使用数据框读取一系列行吗?,python,pandas,dataframe,Python,Pandas,Dataframe,这是我的数据 prakash 101 Ram 107 akash 103 sakshi 115 vidushi 110 aman 106 lakshay 99 我想选择从akash到vidushi的所有行,或者从Ram到aman的所有行。在实际场景中,将有数千行和多列,我将得到多个查询,以根据某些列值选择一系列行。我如何才能做到这一点?您可以使用范围来选择行 print x[2:4] #output akash 103 sakshi 115 vid
prakash 101
Ram 107
akash 103
sakshi 115
vidushi 110
aman 106
lakshay 99
我想选择从akash到vidushi的所有行,或者从Ram到aman的所有行。在实际场景中,将有数千行和多列,我将得到多个查询,以根据某些列值选择一系列行。我如何才能做到这一点?您可以使用范围来选择行
print x[2:4]
#output
akash 103
sakshi 115
vidushi 110
aman 106
如果要根据特定列填充值,可以使用
np。其中以下是正确的方法
start = 'akash'
end = 'vidushi'
l = list(df['names']) #ordered list of names
subl = l[l.index(start):l.index(end)+1] #list of names between the start and end
df[df['names'].isin(subl)] #filter dataset for list of names
创建一些变量(您可以调整),然后使用.loc
和.index[0]
(注意:df[0]
可以替换为标题的名称,因此如果标题名为Names
,则将df[0]
的所有实例更改为df['Names'
:
var1 = 'Ram'
var2 = 'aman'
a = df.loc[df[0]==var1].index[0]
b = df.loc[df[0]==var2].index[0]
c = df.iloc[a:b+1,:]
c
输出:
0 1
1 Ram 107
2 akash 103
3 sakshi 115
4 vidushi 110
5 aman 106
name val
0 akash 103
1 sakshi 115
2 vidushi 110
尝试设置索引
然后使用loc
df = pd.DataFrame({"name":["prakash","Ram","akash","sakshi","vidushi","aman","lakshay"],"val":[101,107,103,115,110,106,99]})
(df.set_index(['name']).loc["akash":"vidushi"]).reset_index()
输出:
0 1
1 Ram 107
2 akash 103
3 sakshi 115
4 vidushi 110
5 aman 106
name val
0 akash 103
1 sakshi 115
2 vidushi 110