我的数据是这样的:
[第一行是标题]
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]。那么,列不属于索引吗?
答案 0 :(得分:9)
使用loc
或iloc
,因为ix
为deprecated。
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