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)!