关于pandas处理数据,怎么提取某一列的部分数字的值?

设有这么一个DataFrame数据:有两列,name列为姓名,age列为年龄,其中年龄为随机生成,如下图:

dataframe取出一列 dataframe获取一列数据dataframe取出一列 dataframe获取一列数据


dataframe取出一列 dataframe获取一列数据


我们可以使用loc来得到age>20的行:

data.loc[条件]

其中条件为data['age']>20

即:data.loc[data['age']>20]

这样就会得到age>20的所有行数据(包括所有列)。

如果我们并不需要所有所有列,那可以再指定要保留的列:

data.loc[data['age']>20,'age']

这样就会得到age>20的所有行的数据(只包括age列)。

如果此时我们再在后面加一个.values,这样也就得到了如提问所示的某一列的部分数字的值的数组了:

pandas中dataFrame的取值和计算作

dataFrame中的值以矩阵的形式存在,在访问值时需要带上行索引或者列索引。

1、dataFrame简单的取值方法

(1)输出前3行数据

打印结果为:

(2)输出后2行数据:

打印结果为:

(3)输出第3行数据:

(4)输出第2列数据

(5)查看行名

打印输出:

(6)查看列名

打印输出:

(6)查看所有数据值

打印输出:

(7)查看行列数

打印输出:

2、复杂的dataFrame取值作(对dataFrame中的数据进行筛选)

创建一个dataFrame例子:

打印结果:

(1)筛选某列中大于某一值得数据:

打印结果为:

(2)筛选列大于1且第二列大于30的数据

打印结果为:

(3)筛选列大于1或第二列大于30的数据

打印结果为:

3、对dataFrame进行函数作

(1)转置

输出结果:

4、删除dataFrame中的某行

(1)删除索引为ac的2行

(2)删除列名为1,3的2列

5、遍历dataframe

如何对dataframe数据进行列选取

首先我们创建一个DataFrame,该DataFrame包含的数据如下 如我们想要筛选D列数据中大于0的行 使用&符号可以实现多条件筛选,当然是用"|"符号也可以实现多条件,只不过他是或的关系。 如我们只需要A和B列数据,而D和C列数据都是用于筛选的

Pandas选取行,列总结

pandas 数据索引与选取

我们对 DataFrame 进行选择,大抵从这三个层次考虑:行列、区域、单元格。

其对应使用的方法如下:

一. 行,列 --> df[]

二. 区域 --> df.loc[], df.iloc[], df.ix[]

三. 单元格 --> df.at[], df.iat[]

下面开始练习:

行维度:

整数索引

列维度:

整数索引

选取某一列

选取某一行

删除某一列

删除某两行

采用drop方法,有下面三种等价的表达式:

注意 :凡是会对原数组作出修改并返回一个新数组的,往往都有一个 inplace可选参数。如果手动设定为True(默认为False),那么原数组直接就被替换。也就是说,采用inplace=True之后,原数组名(如2和3情况所示)对应的内存值直接改变;而采用inplace=False之后,原数组名对应的内存值并不改变,需要将新的结果赋给一个新的数组或者覆盖原数组的内存位置(如1情况所示)

合并两个dataframe

插入一列

插入在第1列(起始为0列,列名为e,列的内容为df['a'])

dataframe 选取Nan 或者not Nan

pandas的DataFrame对象抽取“整列”或者“整行”数据

data[ 列名 ]:取单列或多列,不能用连续方式取,也不能用于取行。

data[ i:j ]:用起始行下标(i)和终止行下标(j)取单行或者连续多行,不能用于列的选取。

data.列名:只用于取单列,不能用于行。

data.loc[行名,列名]:用对象的.loc[]方法实现各种取数据方式。

data.iloc[行下标,列下标]:用对象的.iloc[]方法实现各种取数据方式。

……待添加……

首先生成一个DataFrame对象:

小结:

(1)用数据直接加名称的方式只能获取完整的列(data[ 列名 ] √),不能企图用行名来获取一整行(data[ 行名 ] ×)。

(2)用data[ 列名 ] 方式只能明确指定待选取的列名,不能用连续取值方式。

小节:

(1)用数据直接加矩阵索引的方式只能获取完整的行(data[ 行索引 ]√),不能企图用列索引来获取一整列(data[ 列索引 ]×)。

(2)用data[ 列索引 ] 的方式只能取得单行,或者连续多行,而没法跳跃式指定抽取。

小结:

通过“data.列名”的方式只能取单独一列,无法连续取,用同样的方式取单独一行。

python:pandas之DataFrame取行列(df.loc(),df.iloc())以及索引

1、pandas排序,并取前N列数据

2、取行、取列DataFrame.loc,DataFrame.iloc

-取行DataFrame.loc,DataFrame.iloc