pandas是python数据分析的核心工具,安装使用pip install pandas,导入为import pandas as pd。创建dataframe可从字典或csv文件读取,如pd.dataframe(data)或pd.read_csv('your_data.csv')。数据选择可通过列名或条件过滤实现,如df['姓名']或df[df['年龄'] >= 28]。数据清洗包括填充缺失值fillna()、删除缺失值dropna()和去重drop_duplicates()。类型转换用astype()函数,应用函数可用apply()方法。数据聚合与分组通过groupby()完成,如按城市计算平均年龄。处理大型数据集时,可用分块读取read_csv+chunksize、dask并行计算或优化数据类型。与sql交互可用read_sql_query读取和to_sql写入数据库。时间序列分析支持date_range创建序列、resample重采样和rolling移动窗口计算。掌握这些技巧能高效挖掘数据价值。

Pandas是Python数据分析的瑞士军刀,掌握它能让你在数据世界里畅游无阻。它不仅提供了高效的数据结构,还内置了大量数据处理函数,让数据清洗、转换、分析变得轻松愉快。

Pandas的核心在于DataFrame和Series这两种数据结构。DataFrame可以看作是电子表格或SQL表,而Series则是一维的、带标签的数组。

安装Pandas:
立即学习“Python免费学习笔记(深入)”;

pip install pandas
导入Pandas:
import pandas as pd
创建DataFrame:
从字典创建:
data = {'姓名': ['Alice', 'Bob', 'Charlie'],
'年龄': [25, 30, 28],
'城市': ['北京', '上海', '深圳']}
df = pd.DataFrame(data)
print(df)从CSV文件读取:
df = pd.read_csv('your_data.csv') # 假设你的数据文件名为your_data.csv
print(df.head()) # 查看前几行数据数据选择与过滤:
选择列:
names = df['姓名'] # 选择'姓名'列 print(names)
按条件过滤:
adults = df[df['年龄'] >= 28] # 选择年龄大于等于28岁的人 print(adults)
数据清洗:
处理缺失值:
# 填充缺失值 df_filled = df.fillna(0) # 用0填充所有缺失值 df_filled_mean = df.fillna(df.mean(numeric_only=True)) # 用均值填充数值列的缺失值 # 删除包含缺失值的行 df_dropna = df.dropna()
删除重复值:
df_deduplicated = df.drop_duplicates()
数据转换:
类型转换:
df['年龄'] = df['年龄'].astype(int) # 将'年龄'列转换为整数类型
应用函数:
def add_prefix(name):
return 'Mr./Ms. ' + name
df['姓名'] = df['姓名'].apply(add_prefix) # 给'姓名'列的每个值添加前缀
print(df)数据聚合与分组:
# 按城市分组,计算平均年龄
grouped = df.groupby('城市')['年龄'].mean()
print(grouped)当数据集变得庞大时,Pandas的处理速度可能会下降。这时,可以考虑以下策略:
分块读取: 使用pd.read_csv的chunksize参数,将大文件分成小块读取。
for chunk in pd.read_csv('large_data.csv', chunksize=10000):
# 处理每个数据块
process_chunk(chunk)使用Dask: Dask是一个并行计算库,可以与Pandas无缝集成,加速数据处理。
import dask.dataframe as dd
ddf = dd.read_csv('large_data.csv')
result = ddf.groupby('城市')['年龄'].mean().compute() # 使用compute()触发计算
print(result)优化数据类型: 确保DataFrame使用合适的数据类型,例如将字符串类型转换为category类型可以节省内存。
df['城市'] = df['城市'].astype('category')Pandas可以方便地与SQL数据库进行交互,让你在Python中直接操作数据库数据。
读取SQL数据:
import sqlite3
conn = sqlite3.connect('your_database.db')
query = "SELECT * FROM your_table"
df = pd.read_sql_query(query, conn)
conn.close()
print(df.head())写入DataFrame到SQL:
import sqlite3
from sqlalchemy import create_engine
#方法一:使用sqlite3
conn = sqlite3.connect('your_database.db')
df.to_sql('new_table', conn, if_exists='replace', index=False) # if_exists参数控制如何处理已存在的表
conn.close()
#方法二:使用sqlalchemy
engine = create_engine('sqlite:///your_database.db')
df.to_sql('new_table', engine, if_exists='replace', index=False)
engine.dispose()Pandas对时间序列数据提供了强大的支持,可以方便地进行时间序列分析。
创建时间序列:
dates = pd.date_range('2023-01-01', periods=100, freq='D') # 创建一个从2023-01-01开始,长度为100天的时间序列
ts = pd.Series(range(100), index=dates)
print(ts.head())重采样:
# 将数据按月重采样,并计算平均值
monthly_mean = ts.resample('M').mean()
print(monthly_mean)移动窗口:
# 计算7天移动平均 rolling_mean = ts.rolling(window=7).mean() print(rolling_mean.head(10))
掌握这些技巧,你就能在Python中利用Pandas轻松驾驭数据,挖掘出有价值的信息。
以上就是Python中如何使用Pandas库 数据分析中的常见操作技巧的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号