第一行的选定列

时间:2018-08-13 04:13:34

标签: python pandas

我有一个名为data的数据框,从中我只需要列AB的第一行。

我做了data.loc[0,[data['A'],data['B']]]),但给出了错误-None of ......are in the [ndex]

我在做什么错了?

1 个答案:

答案 0 :(得分:4)

使用默认RangeIndex0中索引的第一个值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值,按ilocIndex.get_indexerIndex.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