Pandas数据处理与分析全解析
立即解锁
发布时间: 2025-08-22 01:48:49 阅读量: 1 订阅数: 3 


Python数据分析与统计学入门指南
# Pandas数据处理与分析全解析
## 1. 数据选择与索引
### 1.1 按列名选择列
可以使用`loc`索引器按列名选择列。例如,选择名为“cases”的列:
```python
data.loc[:,'cases']
```
### 1.2 使用负索引值选择
使用负索引值可以选择最后几列。例如,选择前五行和最后三列:
```python
data.iloc[:5,-1:-4:-1]
```
### 1.3 选择非连续的行和列
要选择非连续的行或列,需要将行或列的索引位置或标签放在列表中。例如,选择第二行和第五行,以及第一列和第四列:
```python
data.iloc[[1,5],[0,3]]
```
### 1.4 其他索引器
#### 1.4.1 ix索引器
`ix`索引器允许通过组合索引标签和位置来选择数据,但由于其选择数据的规则不明确,已被弃用。例如,选择数据集前五行的`cases`列:
```python
data.ix[:5,'cases']
```
使用`ix`索引器会收到警告,建议使用`loc`或`iloc`。
#### 1.4.2 索引运算符 - [ ]
索引运算符可用于选择列或连续的行。例如,选择`population`列:
```python
data['population']
```
选择多列:
```python
data[['country','population']]
```
选择连续的行:
```python
data[:3]
```
但它不能用于选择非连续的行或同时选择行和列,以下代码会出错:
```python
data[[3,5]] # incorrect
data[:,3] # incorrect
```
#### 1.4.3 at和iat索引器
`at`和`iat`索引器用于从Series或DataFrame中选择标量值。`at`类似于`loc`,使用标签;`iat`类似于`iloc`,使用位置。它们的特点如下:
- 只能用于选择标量值。
- 需要同时提供行和列的索引。
- 检索数据比`loc`和`iloc`更快。
示例:
```python
import pandas as pd
data=pd.read_csv('subset-covid-data.csv')
# 使用at索引器
data.at[0,'population']
# 使用iat索引器
data.iat[0,9]
```
### 1.5 布尔索引
布尔索引使用条件语句根据值过滤数据。可以使用单个条件或多个条件,多个条件可以使用位运算符`&`(和)、`|`(或)、`~`(非)组合。例如,选择所有大陆名为“Asia”且国家名以字母“C”开头的记录:
```python
data[(data['continent']=='Asia') & (data['country'].str.startswith('C'))]
```
### 1.6 使用query方法检索数据
当组合多个条件时,代码的可读性可能会受到影响,此时可以使用`query`方法。例如,检索所有大陆名为“Asia”且病例数高于500的记录:
```python
data.query("(continent=='Asia') and (cases>=500)")
```
## 2. Pandas运算符
Pandas使用的运算符可以应用于整个系列,利用了NumPy的向量化特性,无需迭代。不同类型的运算符如下表所示:
| 运算符类型 | 包含的运算符 |
| --- | --- |
| 算术运算符 | +(加法)、 -(减法)、 *(乘法)、 **(幂)、 %(取余)、 /(除法)、 //(整除) |
| 比较运算符 | ==(相等)、 <(小于)、 >(大于)、 <=(小于等于)、 >=(大于等于)、 !=(不等于) |
| 逻辑运算符 | &、 \|、 ~ |
算术运算符的功能也可以使用相应的方法实现,如`add`(+)、`sub`(-)、`mul`(*)、`div`(/)、`mod`(%)、`pow`(**)。
## 3. 日期和时间表示
### 3.1 表示日期和时间
Pandas中可以使用`Timestamp`函数定义日期、时间或日期和时间的组合,它相当于Python中的`datetime.date`、`datetime.time`、`datetime.datetime`。例如,表示2000年12月25日:
```python
import pandas as pd
pd.Timestamp('25/12/2000')
```
`Timestamp`函数接受多种输入格式,如:
```python
pd.Timestamp('25 December 2000')
pd.Timestamp('December 25 2000')
pd.Timestamp('12/25/2000')
pd.Timestamp('25-12-2000')
pd.Timestamp(year=2000,month=12,day=25)
pd.Timestamp('25-12-2000 12 PM')
pd.Timestamp('25-12-2000 0:0.0')
```
### 3.2 表示时间间隔
使用`
0
0
复制全文
相关推荐










