按标签Pandas按整数和列访问行

时间:2017-07-26 14:43:19

标签: python pandas sklearn-pandas

我的数据是这样的:

[第一行是标题]

Name,Email,Age
Sachith,ko@gmail.com,23
Sim,sm@gmail.com,234
Yoshi,yosi@hotmail.com,2345
sarla,sarla@gmail.com,234

我想访问元素,使行按标签指定为整数和列。即 Sim 我想以 [1,'Name'] 等方式访问它,等等

我的问题是我应该使用 loc 还是 ix

查看文档,我对什么是熊猫索引感到困惑?是用于访问行还是列或两者?当我尝试打印这些数据的索引时,我得到一个(4,)dtype = int64数组[0,1,2,3]。那么,列不属于索引吗?

1 个答案:

答案 0 :(得分:9)

使用lociloc,因为ixdeprecated

print (df)
      Name             Email   Age
0  Sachith      ko@gmail.com    23
1      Sim      sm@gmail.com   234
2    Yoshi  yosi@hotmail.com  2345
3    sarla   sarla@gmail.com   234

#select by label 1 and label Name    
a = df.loc[1, 'Name']
print (a)
Sim

但是如果需要按位置选择索引(需要iloc)和按标签选择列(需要loc):

df = df.set_index('Email')
print (df)
                     Name   Age
Email                          
ko@gmail.com      Sachith    23
sm@gmail.com          Sim   234
yosi@hotmail.com    Yoshi  2345
sarla@gmail.com     sarla   234

通过df.index[1]获取第二个索引的标签:

a = df.loc[df.index[1], 'Name']
print (a)
Sim

或者按get_loc获取标签位置:

a = df.iloc[1, df.columns.get_loc('Name')]
print (a)
Sim