import numpy as np
import pandas as pd
df = pd.DataFrame([['Snow','M',22],['Tyrion','M',32],['Sansa','F',18],['Arya','F',14]], columns=['name','gender','age'])
In [35]: df
Out[35]:
name gender age
0 Snow M 22
1 Tyrion M 32
2 Sansa F 18
3 Arya F 14
In [42]: df.columns
Out[42]: Index(['name', 'gender', 'age'], dtype='object')
格式:
1 获取列:df[‘column_name’]
2 获取行:df[row_start_index, row_end_index]
df['name'] #获取name列
df['gender'] #获取gender列
df[['name','gender']] #获取多列,多列名字要放在list里
df[0:] #获取第0行及之后的行,相当于df的全部数据
df[:2] #获取第2行之前的数据(不含第2行)
df[0:1] #获取第0行的数据
df[1:3] #获取第1行到第2行(不含第3行)的数据
df[-1:] #获取最后一行的数据
df[-3:-1] #获取倒数第3行到倒数第1行(不包含最后1行)的数据
格式:
df.loc[index,column_name]
df.loc[0,'name'] # 获取第0行,name列的数据
df.loc[0:2, ['name','age']]#获取第0行到第2行,name列和age列的数据
df.loc[[2,3],['name','age']]#获取指定的第2行和第3行,name和age列的数据
df.loc[df['gender']=='M','name'] #获取gender列值是M,name列的数据
df.loc[df['gender']=='M',['name','age']] #获取gender列值是M,name和age列的数据
在column_name特别长或者index是时间序列等各种不方便输入的情况下,可以用iloc[row_index, column_index],它完全用数字来定位。
格式:
df.iloc[row_index, column_index]
df.iloc[0,0]#获取第0行第0列的数据,'Snow'
df.iloc[1,2]#获取第1行第2列的数据,32
df.iloc[[1,3],0:2]#获取第1行和第3行,从第0列到第2列(不包含第2列)的数据
df.iloc[1:3,[1,2]#获取第1行到第3行(不包含第3行),第1列和第2列的数据