Pandas数据结构的基础用法

发布时间:2021-08-27 16:05:10 作者:chen
来源:亿速云 阅读:192
# Pandas数据结构的基础用法

## 一、Pandas简介

Pandas是Python中最流行的数据分析库之一,由Wes McKinney于2008年开发。它提供了高效、灵活的数据结构,使得数据清洗、分析和处理变得简单直观。Pandas的名字来源于"Panel Data"(面板数据)和"Python Data Analysis"(Python数据分析)的组合。

Pandas的两个核心数据结构是:
- **Series**:一维带标签数组
- **DataFrame**:二维表格型数据结构

## 二、Series数据结构

### 2.1 Series基本概念

Series是Pandas中最基本的对象,类似于一维数组或列表,但带有标签索引(index)。

```python
import pandas as pd

# 从列表创建Series
s = pd.Series([1, 3, 5, 7, 9])
print(s)

2.2 Series的创建方式

Series可以通过多种方式创建:

# 1. 从列表创建
s1 = pd.Series([10, 20, 30, 40])

# 2. 从字典创建(字典的key会成为index)
s2 = pd.Series({'a': 1, 'b': 2, 'c': 3})

# 3. 从numpy数组创建
import numpy as np
s3 = pd.Series(np.random.randn(5))

# 4. 指定index
s4 = pd.Series([5, 6, 7], index=['x', 'y', 'z'])

2.3 Series的常用操作

# 访问元素
print(s[0])        # 通过位置访问
print(s['a'])      # 通过索引访问

# 切片操作
print(s[1:3])      # 位置切片
print(s['b':'d'])  # 索引切片

# 基本统计
print(s.mean())    # 平均值
print(s.max())     # 最大值
print(s.min())     # 最小值

三、DataFrame数据结构

3.1 DataFrame基本概念

DataFrame是Pandas中最常用的数据结构,类似于电子表格或SQL表,是二维的带标签数据结构。

# 从字典创建DataFrame
data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['New York', 'Paris', 'London']
}
df = pd.DataFrame(data)
print(df)

3.2 DataFrame的创建方式

# 1. 从字典列表创建
data = [{'a': 1, 'b': 2}, {'a': 3, 'b': 4}]
df1 = pd.DataFrame(data)

# 2. 从二维数组创建
df2 = pd.DataFrame(np.random.randn(3, 4), columns=['A', 'B', 'C', 'D'])

# 3. 从CSV文件读取
df3 = pd.read_csv('data.csv')

# 4. 从Excel文件读取
df4 = pd.read_excel('data.xlsx')

3.3 DataFrame的基本操作

3.3.1 数据查看

print(df.head())      # 查看前5行
print(df.tail(3))     # 查看后3行
print(df.shape)       # 查看维度
print(df.columns)     # 查看列名
print(df.index)       # 查看索引
print(df.dtypes)      # 查看数据类型

3.3.2 数据选择

# 选择列
print(df['Name'])      # 选择单列
print(df[['Name', 'Age']])  # 选择多列

# 选择行
print(df.iloc[0])      # 通过位置选择行
print(df.loc[0])       # 通过索引选择行
print(df[0:2])         # 行切片

# 条件选择
print(df[df['Age'] > 30])  # 年龄大于30的记录

3.3.3 数据修改

# 添加列
df['Salary'] = [50000, 60000, 70000]

# 修改列
df['Age'] = df['Age'] + 1

# 删除列
df = df.drop('City', axis=1)

# 修改行
df.loc[0, 'Name'] = 'Alice Smith'

四、索引操作

4.1 设置索引

# 设置单列索引
df.set_index('Name', inplace=True)

# 设置多列索引
df.set_index(['Name', 'City'], inplace=True)

# 重置索引
df.reset_index(inplace=True)

4.2 多层索引

# 创建多层索引
index = pd.MultiIndex.from_tuples([('A', 1), ('A', 2), ('B', 1), ('B', 2)])
df = pd.DataFrame(np.random.randn(4, 2), index=index, columns=['X', 'Y'])

# 多层索引访问
print(df.loc['A'])      # 访问A组
print(df.loc[('A', 1)]) # 访问A组第一个元素

五、缺失值处理

5.1 检测缺失值

print(df.isnull())      # 检测缺失值
print(df.notnull())     # 检测非缺失值
print(df.isnull().sum()) # 每列缺失值数量

5.2 处理缺失值

# 删除缺失值
df.dropna()             # 删除包含缺失值的行
df.dropna(axis=1)       # 删除包含缺失值的列

# 填充缺失值
df.fillna(0)            # 用0填充
df.fillna(df.mean())    # 用列均值填充
df.fillna(method='ffill') # 前向填充

六、数据排序

6.1 按值排序

df.sort_values('Age')          # 按年龄升序
df.sort_values('Age', ascending=False) # 按年龄降序
df.sort_values(['Age', 'Salary']) # 多列排序

6.2 按索引排序

df.sort_index()          # 按索引升序
df.sort_index(ascending=False) # 按索引降序

七、数据分组与聚合

7.1 分组操作

grouped = df.groupby('City')  # 按城市分组
print(grouped.groups)         # 查看分组情况

7.2 聚合操作

# 单聚合函数
print(grouped.mean())          # 计算每组的平均值

# 多聚合函数
print(grouped.agg(['mean', 'sum', 'count']))

# 不同列不同聚合
print(grouped.agg({'Age': 'mean', 'Salary': 'sum'}))

八、数据合并与连接

8.1 concat合并

df1 = pd.DataFrame({'A': ['A0', 'A1'], 'B': ['B0', 'B1']})
df2 = pd.DataFrame({'A': ['A2', 'A3'], 'B': ['B2', 'B3']})

# 纵向合并
result = pd.concat([df1, df2])

# 横向合并
result = pd.concat([df1, df2], axis=1)

8.2 merge连接

left = pd.DataFrame({'key': ['K0', 'K1'], 'A': ['A0', 'A1']})
right = pd.DataFrame({'key': ['K0', 'K2'], 'B': ['B0', 'B2']})

# 内连接
result = pd.merge(left, right, on='key', how='inner')

# 左连接
result = pd.merge(left, right, on='key', how='left')

# 外连接
result = pd.merge(left, right, on='key', how='outer')

九、总结

Pandas提供了强大的数据结构Series和DataFrame,使得数据处理变得高效便捷。本文介绍了Pandas数据结构的基础用法,包括:

  1. Series和DataFrame的创建与基本操作
  2. 索引操作和多层索引
  3. 缺失值处理
  4. 数据排序
  5. 数据分组与聚合
  6. 数据合并与连接

掌握这些基础操作是进行数据分析的第一步,后续可以进一步学习时间序列处理、数据可视化等高级功能。 “`

推荐阅读:
  1. expect的基础用法
  2. 数据结构基础(一)

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

pandas

上一篇:centos忘记密码怎么重置root密码

下一篇:Linux系统的安装教程

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》