自学内容网 自学内容网

pandas库详解

pandas 是 Python 中一个强大的数据处理和分析库,特别适用于处理结构化数据。它提供了高效的数据结构,如 DataFrame 和 Series,使得数据操作变得简单直观。以下是对 pandas 的详细讲解,涵盖主要功能和常见操作。

1. 安装 pandas

如果你还没有安装 pandas,可以通过以下命令安装:

pip install pandas

2. 导入 pandas

通常,我们使用 pd 作为 pandas 的别名:

import pandas as pd

3. 主要数据结构

3.1 Series

Series 是一种一维数组,可以存储任何数据类型(整数、字符串、浮点数、Python 对象等)。它类似于带有标签的数组。

# 创建一个 Series
s = pd.Series([1, 3, 5, 7, 9])
print(s)

输出:

0    1
1    3
2    5
3    7
4    9
dtype: int64
3.2 DataFrame

DataFrame 是一个二维的表格型数据结构,可以存储多种类型的数据。它类似于 Excel 表格或 SQL 表。

# 创建一个 DataFrame
data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David'],
    'Age': [24, 27, 22, 32],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston']
}

df = pd.DataFrame(data)
print(df)

输出:

      Name  Age         City
0    Alice   24     New York
1      Bob   27  Los Angeles
2  Charlie   22      Chicago
3    David   32      Houston

4. 数据读取与写入

4.1 读取数据

pandas 支持从多种文件格式读取数据,如 CSV、Excel、SQL、JSON 等。

# 读取 CSV 文件
df = pd.read_csv('data.csv')

# 读取 Excel 文件
df = pd.read_excel('data.xlsx')
4.2 写入数据

同样,pandas 也可以将数据写入多种文件格式。

# 写入 CSV 文件
df.to_csv('output.csv', index=False)

# 写入 Excel 文件
df.to_excel('output.xlsx', index=False)

5. 数据查看与选择

5.1 查看数据
# 查看前几行
print(df.head())

# 查看后几行
print(df.tail())

# 查看数据概览
print(df.info())

# 查看统计信息
print(df.describe())
5.2 选择数据
# 选择一列
print(df['Name'])

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

# 选择行
print(df.iloc[0])  # 选择第一行
print(df.loc[0])   # 选择第一行(基于标签)

# 条件选择
print(df[df['Age'] > 25])

6. 数据操作

6.1 添加列
df['Salary'] = [50000, 60000, 70000, 80000]
print(df)
6.2 删除列
df = df.drop('Salary', axis=1)
print(df)
6.3 排序
# 按某一列排序
df = df.sort_values(by='Age')
print(df)
6.4 分组与聚合
# 按某一列分组并计算平均值
grouped = df.groupby('City')['Age'].mean()
print(grouped)

7. 缺失值处理

7.1 检测缺失值
print(df.isnull())
7.2 处理缺失值
# 删除包含缺失值的行
df = df.dropna()

# 填充缺失值
df = df.fillna(0)

8. 数据合并与连接

8.1 合并
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2'],
                    'B': ['B0', 'B1', 'B2']})

df2 = pd.DataFrame({'C': ['C0', 'C1', 'C2'],
                    'D': ['D0', 'D1', 'D2']})

result = pd.concat([df1, df2], axis=1)
print(result)
8.2 连接
left = pd.DataFrame({'key': ['K0', 'K1', 'K2'],
                     'A': ['A0', 'A1', 'A2'],
                     'B': ['B0', 'B1', 'B2']})

right = pd.DataFrame({'key': ['K0', 'K1', 'K2'],
                      'C': ['C0', 'C1', 'C2'],
                      'D': ['D0', 'D1', 'D2']})

result = pd.merge(left, right, on='key')
print(result)

9. 数据透视表

# 创建数据透视表
pivot_table = df.pivot_table(values='Age', index='City', aggfunc='mean')
print(pivot_table)

10. 时间序列处理

pandas 提供了强大的时间序列处理功能。

# 创建时间序列
dates = pd.date_range('20230101', periods=6)
df = pd.DataFrame({'Date': dates, 'Value': [1, 2, 3, 4, 5, 6]})

# 设置日期为索引
df.set_index('Date', inplace=True)
print(df)

11. 其他常用操作

11.1 重命名列
df = df.rename(columns={'Age': 'Years'})
print(df)
11.2 重置索引
df = df.reset_index()
print(df)
11.3 应用函数
# 对某一列应用函数
df['Age'] = df['Age'].apply(lambda x: x + 1)
print(df)

12. 性能优化

对于大数据集,pandas 提供了一些性能优化的方法,如使用 dtype 指定数据类型、使用 chunksize 分块读取数据等。

# 指定数据类型
df = pd.read_csv('data.csv', dtype={'Age': 'int32'})

# 分块读取数据
chunksize = 10000
for chunk in pd.read_csv('data.csv', chunksize=chunksize):
    process(chunk)

13. 总结

pandas 是 Python 数据分析的核心工具之一,提供了丰富的数据操作功能。通过掌握 pandas,你可以高效地处理和分析结构化数据。本文涵盖了 pandas 的主要功能和常见操作,希望对你有所帮助。

14.案例

1.将txt文件转换为xlsx文件

import pandas as pd
import os
import openpyxl
# pandas 在读取 Excel 文件时,依赖于 openpyxl 或 xlrd 等库来处理 .xlsx 文件
# 如果是 .xls 文件,安装 xlrd 库:pip install xlrd

# 将工作目录设置为当前文件所在的目录
current_dir = os.path.dirname(os.path.abspath(__file__))
os.chdir(current_dir)

# 读取文本文件
with open('order.txt', 'r', encoding='utf-8') as file:
    lines = file.readlines()

# 解析文本内容
orders = []  # 存储所有订单
current_order = {}  # 当前订单

for line in lines:
    line = line.strip()  # 去除首尾空白字符
    if not line:  # 如果遇到空行,表示一个订单结束
        if current_order:  # 如果当前订单不为空
            orders.append(current_order)  # 将当前订单添加到订单列表
            current_order = {}  # 重置当前订单
    elif ':' in line:  # 检查是否包含分隔符
        key, value = line.split(':', 1)  # 按第一个冒号分割
        current_order[key] = value

# 处理最后一个订单(如果文件末尾没有空行)
if current_order:
    orders.append(current_order)

# 将数据转换为 DataFrame
df = pd.DataFrame(orders)

# 保存为 Excel 文件
df.to_excel('order.xlsx', index=False)

print("文件已保存为 order.xlsx")
print(pd.read_excel("order.xlsx"))


原文地址:https://blog.csdn.net/m0_59388634/article/details/145264176

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!