百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分类 > 正文

Python数据的选取和处理(python数据提取方法)

ztj100 2025-07-03 02:34 5 浏览 0 评论

import pandas as pd
import numpy as np
data = pd.DataFrame(np.arange(1,10).reshape(3,3),index=['r1','r2','r3'],columns= ['c1','c2','c3'])
print(data)
    c1  c2  c3
r1   1   2   3
r2   4   5   6
r3   7   8   9
#按列选取数据
a = data['c1']
print(a)
r1    1
r2    4
r3    7
b = data['c1']
print(b)
r1    1
r2    4
r3    7
c = data[['c1','c3']]
print(c)
   c1  c3
r1   1   3
r2   4   6
r3   7   9
#按行选取数据
a = data[1:3] #选取第2-3行,序号从0开始
print(a)
    c1  c2  c3
r2   4   5   6
r3   7   8   9
b = data.iloc[1:3]
print(b)
  c1  c2  c3
r2   4   5   6
r3   7   8   9
c = data.iloc[-1]#选取单行,必须用iloc方法
print(c)
r3   7   8   9
d = data.loc[['r2','r3']]#根据行的名称来选择数据
print(d)
e = data.head()#用来选取前几行的数据
print(e)
   c1  c2  c3
r1   1   2   3
r2   4   5   6
r3   7   8   9
#按区块选取数据
a = data[0:2][['c1','c3']]
print(a)
b = data.iloc[0:2][['c1','c3']]
print(b)
c = data.iloc[0]['c3']
print(c)
d = data.iloc[0:2,[0,2]]
print(d)
#数据的筛选
a = data[data['c1'] > 1]
print(a)
b = data[(data['c1'] > 1) & (data['c2'] == 5)]
print(b)
c = data[(data['c1'] > 1) | (data['c2'] == 5)]
print(c)
#数据的排序
a = data.sort_values(by= 'c2',ascending= False)
print(a)
b = b.sort_index()
print(b)

这段代码展示了 Pandas DataFrame 的数据选择、筛选和排序操作,下面是详细解释:
数据准备
python
运行
import pandas as pd
import numpy as np
解释一下上面这段代码的作用和工作原理:
data = pd.DataFrame(
    np.arange(1, 10).reshape(3, 3),  # 生成1~9的3×3矩阵
    index=['r1', 'r2', 'r3'],       # 行索引
    columns=['c1', 'c2', 'c3']      # 列索引
)
数据结构:
plaintext
   c1  c2  c3
r1  1   2   3
r2  4   5   6
r3  7   8   9
一、按列选取数据
1. 选取单列(返回 Series)
python
运行
a = data['c1']  # 选取 'c1' 列
结果:
plaintext
r1    1
r2    4
r3    7
Name: c1, dtype: int64
2. 选取多列(返回 DataFrame)
python
运行
c = data[['c1', 'c3']]  # 选取 'c1' 和 'c3' 列
结果:
plaintext
   c1  c3
r1  1   3
r2  4   6
r3  7   9
二、按行选取数据
1. 切片(通过索引位置)
python
运行
a = data[1:3]  # 选取第2行和第3行(索引从0开始)
结果:
plaintext
   c1  c2  c3
r2  4   5   6
r3  7   8   9
2. iloc(通过整数位置)
python
运行
b = data.iloc[1:3]  # 同上
c = data.iloc[-1]   # 选取最后一行(返回 Series)
c 的结果:
plaintext
c1    7
c2    8
c3    9
Name: r3, dtype: int64
3. loc(通过索引标签)
python
运行
d = data.loc[['r2', 'r3']]  # 选取 'r2' 和 'r3' 行
结果:
plaintext
   c1  c2  c3
r2  4   5   6
r3  7   8   9
4. head()(选取前 N 行)
python
运行
e = data.head()  # 默认取前5行(本例只有3行,返回全量数据)
三、按区块选取数据
1. 组合切片(先选行,再选列)
python
运行
a = data[0:2][['c1', 'c3']]  # 选前2行的 'c1' 和 'c3' 列
结果:
plaintext
   c1  c3
r1  1   3
r2  4   6
2. iloc 组合(行和列同时切片)
python
运行
d = data.iloc[0:2, [0, 2]]  # 同上,但更高效
3. 定位单个元素
python
运行
c = data.iloc[0]['c3']  # 选取第1行的 'c3' 列(值为3)
四、数据筛选
1. 单列条件
python
运行
a = data[data['c1'] > 1]  # 筛选 'c1' 大于1的行
结果:
plaintext
   c1  c2  c3
r2  4   5   6
r3  7   8   9
2. 多条件组合(逻辑与 &)
python
运行
b = data[(data['c1'] > 1) & (data['c2'] == 5)]  # 筛选 'c1>1' 且 'c2=5' 的行
结果:
plaintext
   c1  c2  c3
r2  4   5   6
3. 多条件组合(逻辑或 |)
python
运行
c = data[(data['c1'] > 1) | (data['c2'] == 5)]  # 筛选 'c1>1' 或 'c2=5' 的行
结果:
plaintext
   c1  c2  c3
r2  4   5   6
r3  7   8   9
五、数据排序
1. 按列值排序
python
运行
a = data.sort_values(by='c2', ascending=False)  # 按 'c2' 列降序排序
结果:
plaintext
   c1  c2  c3
r3  7   8   9
r2  4   5   6
r1  1   2   3
2. 按索引排序
python
运行
b = b.sort_index()  # 按行索引升序排序(注:这里的b是前面筛选的结果)
核心知识点总结
数据选择:
列选择:df['col'] 或 df[['col1', 'col2']]
行选择:df[start:end]、df.iloc[]、df.loc[]
区块选择:组合行和列的选择器
筛选逻辑:
条件用括号包裹:(cond1) & (cond2)
逻辑运算符:&(与)、|(或)、~(非)
排序方法:
值排序:sort_values(by='col', ascending=False)
索引排序:sort_index()

相关推荐

Java对象序列化与反序列化的那些事

Java对象序列化与反序列化的那些事在Java的世界里,对象序列化和反序列化就像一对孪生兄弟,它们共同构成了Java对象存储和传输的基础。如果你曾经尝试将对象保存到文件中,或者在网络中传输对象,那么你...

集合或数组转成String字符串(集合怎么转换成字符串)

1.将集合转成String字符串Strings="";for(inti=0;i<numList.size;i++){if(s==""){s=numL...

java学习分享:Java截取(提取)子字符串(substring())

在String中提供了两个截取字符串的方法,一个是从指定位置截取到字符串结尾,另一个是截取指定范围的内容。下面对这两种方法分别进行介绍。1.substring(intbeginIndex)形...

deepseek提示词:sql转c#代码示例。

SELECTRIGHT('0000'+CAST(DATEDIFF(DAY,'2024-01-01',GETDATE())ASVARCHAR(4)),4)...

Java 21 新特性的实践,确实很丝滑!

1虚拟线程创建虚拟线程...

为什么Java中的String是不可变的(Immutable)

在Java中,String类型是用于表示字符串的类,而字符串则是字符序列,是Java编程中最常用的数据类型之一。String类是不可变的,这意味着一旦创建,字符串的值就不能改变,下面我们就来介绍一下为...

Java中读取File文件内容转为String类型

@Java讲坛杨工开发中常常会碰到读取磁盘上的配置文件等内容,然后获取文件内容转字符串String类型,那么就需要编写一个API来实现这样的功能。首先准备一个测试需要的文件test.xml...

从Pandas快速切换到Polars :数据的ETL和查询

对于我们日常的数据清理、预处理和分析方面的大多数任务,Pandas已经绰绰有余。但是当数据量变得非常大时,它的性能开始下降。我们以前的两篇文章来测试Pandas1.5.3、polar和Pandas...

Pandas高手养成记:10个鲜为人知的高效数据处理技巧

Pandas是Python中非常强大的数据分析库,提供了高效的数据结构和数据处理工具。以下是一些鲜为人知但极其有用的Pandas数据处理技巧,可以帮助你提高工作效率:使用.eval()执行行...

灵活筛选数据,pandas无需指定行列的筛选方法,步骤详解

pandas库可轻松地筛选出符合特定条件的数据,无需指定筛选的行和列。通过灵活运用pandas的筛选功能,我们能够高效、准确地获取到感兴趣的数据,本文将介绍以下几种方法,在不指定行列的情况下使用pan...

【Pandas】(4)基本操作(pandas的基本操作)

选择数据获取列单列获取要获取DataFrame的单个列,你可以使用列名以两种不同的方式:...

「Python数据分析」Pandas基础,用iloc函数按行列位置选择数据

前面我们学过,使用loc函数,通过数据标签,也就是行标签和列标签来选择数据。行和列的标签,是在数据获取,或者是生成的时候,就已经定义好的。行数据标签,也就是唯一标识数据,不重复的一列,相当于数据库中的...

Python数据的选取和处理(python数据提取方法)

importpandasaspdimportnumpyasnpdata=pd.DataFrame(np.arange(1,10).reshape(3,3),index=['...

天秀!一张图就能彻底搞定Pandas(10分钟搞定pandas)

作者:刘早起公众号:早起Python大家好,在三月初,我曾给大家分享过一份Matplotlib绘图小抄,详见收下这份来自GitHub的神器,一图搞定Matplotlib!昨天在面向GitHub编程时,...

Python学不会来打我(92)python代码调试知识总结(五)属性问题

Attributeerror是属性问题,这个问题的报错也经常会出现,今天我们就分享一下:Python中引发AttributeError的常见原因及对应解决方案的详细分析。...

取消回复欢迎 发表评论: