Python Pandas 介绍:快速掌握数据操作 – wiki基地

“`text

Python Pandas 介绍:快速掌握数据操作

在当今数据驱动的世界中,高效地处理和分析数据是至关重要的技能。Python 凭借其简洁的语法和强大的生态系统,成为了数据科学领域的首选语言。而 Pandas,作为 Python 数据分析的核心库,更是让数据操作变得前所未有的简单和高效。本文将深入浅出地介绍 Pandas 库,帮助您快速掌握其核心概念和常用操作,从而提升您的数据处理能力。

什么是 Pandas?

Pandas 是一个开源的 Python 库,专门为数据操作和分析而设计。它构建在 NumPy 库之上,提供了高性能、易于使用的数据结构和数据分析工具。Pandas 的两大核心数据结构是 SeriesDataFrame,它们是进行数据操作的基础。

核心数据结构

1. Series (系列)

Series 是一种一维带标签数组,可以存储任何数据类型(整数、字符串、浮点数、Python 对象等)。它由两部分组成:数据和与之关联的标签(或索引)。

创建 Series:

“`python
import pandas as pd

从列表创建 Series

s = pd.Series([1, 3, 5, np.nan, 6, 8])
print(s)

从字典创建 Series,字典的键将成为索引

data = {‘a’: 10, ‘b’: 20, ‘c’: 30}
s_dict = pd.Series(data)
print(s_dict)
“`

Series 的主要特点:
* 索引: 自动生成或自定义的标签,用于快速访问数据。
* 同构数据: 尽管 Series 可以包含不同类型的数据,但在大多数情况下,它用于存储单一数据类型的数据。

2. DataFrame (数据框)

DataFrame 是 Pandas 中最常用的数据结构,它是一个二维带标签的数据结构,可以看作是 Series 对象的容器,每一列都是一个 Series。它非常类似于电子表格或关系型数据库中的表。

创建 DataFrame:

“`python
import pandas as pd
import numpy as np

从字典创建 DataFrame

data = {‘col1’: [1, 2, 3], ‘col2’: [‘A’, ‘B’, ‘C’]}
df = pd.DataFrame(data)
print(df)

从 NumPy 数组创建 DataFrame

dates = pd.date_range(‘20230101’, periods=6)
df2 = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list(‘ABCD’))
print(df2)
“`

DataFrame 的主要特点:
* 行和列: 具有行索引和列标签,方便数据定位和操作。
* 异构数据: 不同列可以存储不同类型的数据。

快速掌握数据操作

掌握 Pandas 的关键在于理解如何高效地执行以下几类基本操作:

1. 数据导入与导出

Pandas 支持多种数据格式的导入和导出,最常见的是 CSV 文件。

“`python

读取 CSV 文件

df_csv = pd.read_csv(‘your_data.csv’)

写入 CSV 文件

df_csv.to_csv(‘new_data.csv’, index=False) # index=False 避免写入行索引
“`

Pandas 还支持 JSON, Excel, SQL 数据库等多种格式。

2. 数据查看与探索

加载数据后,首先需要对其进行初步了解。

“`python

查看前几行数据

print(df.head())

查看后几行数据

print(df.tail(3))

获取 DataFrame 的摘要信息,包括数据类型、非空值数量等

print(df.info())

获取数值列的统计摘要,如均值、标准差、最大值、最小值等

print(df.describe())

获取 DataFrame 的形状(行数,列数)

print(df.shape)

查看列名

print(df.columns)

查看索引

print(df.index)
“`

3. 数据选择与过滤

这是 Pandas 最常用的功能之一,用于从 DataFrame 中提取所需的数据。

选择列:

“`python

选择单列,返回 Series

print(df[‘col1’])

选择多列,返回 DataFrame

print(df[[‘col1’, ‘col2’]])
“`

选择行:

“`python

通过标签选择行(loc)

print(df.loc[0]) # 选择第一行(索引为0)
print(df.loc[0:2]) # 选择索引为0到2的行

通过整数位置选择行(iloc)

print(df.iloc[0]) # 选择第一行
print(df.iloc[0:2]) # 选择前两行
“`

条件过滤:

“`python

过滤出 col1 大于 10 的行

print(df[df[‘col1’] > 10])

结合多个条件

print(df[(df[‘col1’] > 10) & (df[‘col2’] == ‘A’)])
“`

4. 数据清洗与处理

实际数据往往存在缺失值、重复值等问题,Pandas 提供了强大的工具进行清洗。

处理缺失值:

“`python

检查缺失值

print(df.isnull())
print(df.isnull().sum()) # 每列缺失值的数量

删除含有缺失值的行

df_cleaned = df.dropna()

填充缺失值

df_filled = df.fillna(0) # 用 0 填充
df_mean_filled = df[‘col1’].fillna(df[‘col1’].mean()) # 用列的均值填充
“`

处理重复值:

“`python

检查重复行

print(df.duplicated())

删除重复行

df_no_duplicates = df.drop_duplicates()
“`

数据类型转换:

“`python

将某一列转换为特定类型

df[‘col1’] = df[‘col1’].astype(float)
“`

5. 数据排序

“`python

按单列排序

df_sorted = df.sort_values(by=’col1′, ascending=False) # 降序

按多列排序

df_sorted_multi = df.sort_values(by=[‘col1’, ‘col2’])
“`

6. 数据分组与聚合 (Group By)

groupby() 是 Pandas 中进行数据聚合分析的核心功能。

“`python

按 ‘col2’ 分组,并计算 ‘col1’ 的均值

grouped_mean = df.groupby(‘col2’)[‘col1’].mean()
print(grouped_mean)

按 ‘col2’ 分组,并计算多个聚合函数

grouped_agg = df.groupby(‘col2’).agg({‘col1’: [‘mean’, ‘min’, ‘max’], ‘col3’: ‘sum’})
print(grouped_agg)
“`

7. 数据合并与连接

当处理多个相关联的数据集时,合并和连接操作至关重要。

“`python
df1 = pd.DataFrame({‘key’: [‘A’, ‘B’, ‘C’], ‘value1’: [1, 2, 3]})
df2 = pd.DataFrame({‘key’: [‘B’, ‘C’, ‘D’], ‘value2’: [4, 5, 6]})

内连接 (inner join)

merged_df = pd.merge(df1, df2, on=’key’, how=’inner’)
print(merged_df)

左连接 (left join)

left_merged_df = pd.merge(df1, df2, on=’key’, how=’left’)
print(left_merged_df)

数据堆叠 (concatenation)

df_concat = pd.concat([df1, df2], axis=0) # 垂直堆叠
print(df_concat)
“`

总结

Pandas 是 Python 数据分析工具箱中不可或缺的一部分。通过掌握 SeriesDataFrame 这两个核心数据结构,以及数据导入导出、查看探索、选择过滤、清洗处理、排序、分组聚合和合并连接等操作,您将能够高效地处理各种数据任务。这只是 Pandas 功能的冰山一角,随着您在数据分析旅程中的深入,您会发现 Pandas 提供了更多高级和灵活的功能来应对复杂的数据挑战。从今天开始,就让 Pandas 成为您数据分析的得力助手吧!

“`

滚动至顶部