DataFrame对象是一个由行列组成的表。DataFrame中行由columns组成,列由index组成,它们都是Index对象。它的值还是numpy数组。
import pandas as pddata = {'name':['ming', 'hong', 'gang', 'tian'], 'age':[12, 13, 14, 20], 'score':[80.3, 88.2, 90, 99.9]}df1 = pd.DataFrame(data,index=range(1,5))print(df1)
dateframe 包括行和列的标签
name age score
1 ming 12 80.3
2 hong 13 88.2
3 gang 14 90.0
4 tian 20 99.9
print(df1.index) # RangeIndex(start=1, stop=5, step=1)print(df1.columns) # Index(['name', 'age', 'score'], dtype='object')print(df1.values)
df1.values 不包括行和列标签
[[‘ming’ 12 80.3]
[‘hong’ 13 88.2]
[‘gang’ 14 90.0]
[‘tian’ 20 99.9]]
DataFrame对象进行索引
1:使用columns的值对列进行索引
直接使用columns中的值进行索引,得到的是一列或者是多列的值
print(df1['name'])
1 ming
2 hong
3 gang
4 tian
Name: name, dtype: object
print(df1[['name','age']])
name age
1 ming 12
2 hong 13
3 gang 14
4 tian 20
注意:不可以直接使用下标对列进行索引,除非该columns当中包含该值。如下面的操作是错误的
print(df1[0]) # 结果: 错误
2:切片或者布尔Series对行进行索引
使用切片索引,或者布尔类型Series进行索引:
print(df1[0:3])
name age score
1 ming 12 80.3
2 hong 13 88.2
3 gang 14 90.0
print(df1[ df1['age'] > 13 ])
name age score
3 gang 14 90.0
4 tian 20 99.9
3:使用loc和iloc进行索引
本质上loc是用index和columns当中的值进行索引,而iloc是不理会index和columns当中的值的,永远都是用从0开始的下标进行索引。所以当你搞懂这句话的时候,下面的索引就会变得非常简单:
print(df1.loc[3]) # 返回行索引为 3 的数据
name gang
age 14
score 90
Name: 3, dtype: object
print(df1.loc[:,'age']) # 返回列索引为age的数据
1 12
2 13
3 14
4 20
Name: age, dtype: int64
print(df1.iloc[3]) # iloc不理会index和columns中的值,从0开始的下标进行索引
name tian
age 20
score 99.9
Name: 4, dtype: object
print(df1.iloc[:,1]) # 返回列索引为 1 的数据
1 12
2 13
3 14
4 20
Name: age, dtype: int64
转载自三味书屋
