以下实验中的train.csv文件使用Digit Recognizer中的训练数据集
import pandas as pd # 引用pandas库
import numpy as np # 引用Numpy库
dataset = pd.read_csv("../data/train.csv") #读取csv文件
dataset.head() # 查看数据前5行
# 随机构造一个5行3列的DataFrame数据,列名分别定义为‘ABC’,行索引间隔为2
df = pd.DataFrame(np.arange(15).reshape(5,3),index=list('abcde'),columns=list('ABC')) #
A B C
a 0 1 2
b 3 4 5
c 6 7 8
d 9 10 11
e 12 13 14
df.irow(0) #取df的第一行, FutureWarning: irow(i) is deprecated. Please use .iloc[i]
A 0
B 1
C 2
Name: a, dtype: int32
df.iloc[0] #取df的第一行
A 0
B 1
C 2
Name: a, dtype: int32
df.iloc[[2]] # 按照index的序值,选择第3行
A B C
c 6 7 8
df.loc[['b']] # 按照index的具体值,选择索引为'b'的那一行
A B C
b 3 4 5
df['A'] # 选择表格中的'A'列,使用类字典属性,返回的是Series类型
a 0
b 3
c 6
d 9
e 12
Name: A, dtype: int32
df.A # 选择表格中的'A'列,使用点属性,返回的是Series类型
a 1.470787
b 0.253183
c -0.061858
d 0.203922
e 0.364775
Name: A, dtype: float64
df[['A']] # 选择表格中的'A'列,返回的是DataFrame类型
A
a 0
b 3
c 6
d 9
e 12
df[['A','B']] # 选择表格中的'A'、'B'列
A B
a 0 1
b 3 4
c 6 7
d 9 10
e 12 13
df[0:2] #返回第1行到第2行的所有行,前闭后开,包括前不包括后
A B C
a 0 1 2
b 3 4 5
df[1:2] #返回第2行,从0计,返回的是单行,通过有前后值的索引形式,
#如果采用data[1]则报错
A B C
b 3 4 5
df.ix[1:2] #返回第2行的第三种方法,返回的是DataFrame,跟df[1:2]同
A B C
b 3 4 5
df['a':'b'] #利用index值进行切片,返回的是**前闭后闭**的DataFrame,
#即末端是包含的
A B C
a 0 1 2
b 3 4 5
df.icol(0) # 取df的第一列 ,FutureWarning: icol(i) is deprecated. Please use .iloc[:,i]
a 0
b 3
c 6
d 9
e 12
Name: A, dtype: int32
df.iloc[:,0] #取df的第一列
a 0
b 3
c 6
d 9
e 12
Name: A, dtype: int32
df.tail(3) #返回df的后3行数据,默认为后五行,需要后十行则df.tail(10)
A B C
c 6 7 8
d 9 10 11
e 12 13 14
df.iloc[-1] #选取DataFrame最后一行,返回的是Series
A 12
B 13
C 14
Name: e, dtype: int32
df.iloc[-1:] #选取DataFrame最后一行,返回的是DataFrame
A B C
e 12 13 14
df.loc['a',['B','C']] #返回‘a’行'B'、'C'列,这种用于选取行索引列索引已知
B 1
C 2
Name: a, dtype: int32
df.iat[1,1] #选取第二行第二列,用于已知行、列位置的选取。
4
df.ix[:,[0,1,2]] #不知道列名只知道列的位置时
A B C
a 0 1 2
b 3 4 5
c 6 7 8
d 9 10 11
e 12 13 14
选择DataFrame中列名以XXX开头的列:
import pandas as pd
import numpy as np
df = pd.DataFrame({'foo.aa': [1, 2.1, np.nan, 4.7, 5.6, 6.8],
'foo.fighters': [0, 1, np.nan, 0, 0, 0],
'foo.bars': [0, 0, 0, 0, 0, 1],
'bar.baz': [5, 5, 6, 5, 5.6, 6.8],
'foo.fox': [2, 4, 1, 0, 0, 5],
'nas.foo': ['NA', 0, 1, 0, 0, 0],
'foo.manchu': ['NA', 0, 0, 0, 0, 0],})
df[df.columns[pd.Series(df.columns).str.startswith('foo')]]
> foo.aa foo.bars foo.fighters foo.fox foo.manchu
0 1.0 0 0 2 NA
1 2.1 0 1 4 0
2 NaN 0 NaN 1 0
3 4.7 0 0 0 0
4 5.6 0 0 0 0
5 6.8 1 0 5 0
参考引用:http://blog.csdn.net/xiaodongxiexie/article/details/53108959
取制定列名下的第一行:year = df['years'].iloc[i]