我有一个名为data
的数据框,从中我只需要列A
和B
的第一行。
我做了data.loc[0,[data['A'],data['B']]])
,但给出了错误-None of ......are in the [ndex]
我在做什么错了?
答案 0 :(得分:4)
使用默认RangeIndex
和0
中索引的第一个值DataFrame.loc
的列名列表:
data = pd.DataFrame({'A':[4,5,4],
'B':[7,2,3],
'C':[1,1,0],
'D':[5,3,6],
'E':list('fgh')})
print (data)
A B C D E
0 4 7 1 5 f
1 5 2 1 3 g
2 4 3 0 6 h
s = data.loc[0,['A','B']]
print (s)
A 4
B 7
Name: 0, dtype: object
a = data.loc[0,'A']
print (a)
4
b = data.loc[0,'B']
print (b)
7
对于非默认唯一Index
,可以通过用df.index[0]
进行索引来选择第一个值:
data = pd.DataFrame({'A':[4,5,4],
'B':[7,2,3],
'C':[1,1,0],
'D':[5,3,6],
'E':list('fgh')}, index=list('abc'))
print (data)
A B C D E
a 4 7 1 5 f
b 5 2 1 3 g
c 4 3 0 6 h
s = data.loc[data.index[0],['A','B']]
print (s)
A 4
B 7
Name: a, dtype: object
a = data.loc[data.index[0],'A']
print (a)
4
b = data.loc[data.index[0],'B']
print (b)
7
对于不唯一的Index
es值,按iloc
和Index.get_indexer
或Index.get_loc
的位置进行选择:
data = pd.DataFrame({'A':[4,5,4],
'B':[7,2,3],
'C':[1,1,0],
'D':[5,3,6],
'E':list('fgh')}, index=[0,0,0])
print (data)
A B C D E
0 4 7 1 5 f
0 5 2 1 3 g
0 4 3 0 6 h
s = data.iloc[0, data.columns.get_indexer(['A','B'])]
print (s)
A 4
B 7
Name: 0, dtype: object
a = data.iloc[0, data.columns.get_loc('A')]
print (a)
4
b = data.iloc[0, data.columns.get_loc('B')]
print (b)
7