1、
df=DataFrame([{‘A’:’11’,’B’:’12’},{‘A’:’111’,’B’:’121’},{‘A’:’1111’,’B’:’1211’}])
print df.columns.size#列数 2 print df.iloc[:,0].size#行数 3 print df.ix[[0]].index.values[0]#索引值 0 print df.ix[[0]].values[0][0]#第一行第一列的值 11 print df.ix[[1]].values[0][1]#第二行第二列的值 121
以下实验中的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 2b 3 4 5c 6 7 8d 9 10 11e 12 13 14
df.irow(0) #取df的第一行, FutureWarning: irow(i) is deprecated. Please use .iloc[i] A 0B 1C 2Name: a, dtype: int32 df.iloc[0] #取df的第一行 A 0B 1C 2Name: 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 0b 3c 6d 9e 12Name: A, dtype: int32
df.A # 选择表格中的'A'列,使用点属性,返回的是Series类型a 1.470787b 0.253183c -0.061858d 0.203922e 0.364775Name: A, dtype: float64
df[['A']] # 选择表格中的'A'列,返回的是DataFrame类型 A a 0b 3c 6d 9e 12
df[['A','B']] # 选择表格中的'A'、'B'列 A B a 0 1b 3 4c 6 7d 9 10e 12 13
df[0:2] #返回第1行到第2行的所有行,前闭后开,包括前不包括后 A B Ca 0 1 2b 3 4 5
df[1:2] #返回第2行,从0计,返回的是单行,通过有前后值的索引形式, #如果采用data[1]则报错 A B Cb 3 4 5df.ix[1:2] #返回第2行的第三种方法,返回的是DataFrame,跟df[1:2]同 A B Cb 3 4 5
df['a':'b'] #利用index值进行切片,返回的是**前闭后闭**的DataFrame, #即末端是包含的 A B Ca 0 1 2b 3 4 5
df.icol(0) # 取df的第一列 ,FutureWarning: icol(i) is deprecated. Please use .iloc[:,i]a 0b 3c 6d 9e 12Name: A, dtype: int32 df.iloc[:,0] #取df的第一列a 0b 3c 6d 9e 12Name: A, dtype: int32
df.tail(3) #返回df的后3行数据,默认为后五行,需要后十行则df.tail(10) A B C c 6 7 8d 9 10 11e 12 13 14
df.iloc[-1] #选取DataFrame最后一行,返回的是SeriesA 12B 13C 14Name: e, dtype: int32 df.iloc[-1:] #选取DataFrame最后一行,返回的是DataFrame A B C e 12 13 14
df.loc['a',['B','C']] #返回‘a’行'B'、'C'列,这种用于选取行索引列索引已知 B 1C 2Name: a, dtype: int32
df.iat[1,1] #选取第二行第二列,用于已知行、列位置的选取。4
df.ix[:,[0,1,2]] #不知道列名只知道列的位置时 A B Ca 0 1 2b 3 4 5c 6 7 8d 9 10 11e 12 13 14
选择DataFrame中列名以XXX开头的列:
import pandas as pdimport 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.manchu0 1.0 0 0 2 NA1 2.1 0 1 4 02 NaN 0 NaN 1 03 4.7 0 0 0 04 5.6 0 0 0 05 6.8 1 0 5 0
参考引用:http://blog.csdn.net/xiaodongxiexie/article/details/53108959
在dataframe中根据一定的条件,得到符合要求的某行元素所在的位置。
代码如下所示:
df如下所示,以上通过选取“BoolCol”取值为3且“attr”取值为22的行,得到该行在df中的位置
注意:返回的位置为index列表,根据index的不同而不同,这点易于数组中默认的下标。