您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Pandas数据结构的介绍及如何创建Series,DataFrame对象
## 一、Pandas简介
### 1.1 Pandas概述
Pandas是Python中最流行的数据分析库之一,由Wes McKinney于2008年开发。名称"Pandas"源自"Panel Data"(面板数据)的缩写。作为NumPy的扩展库,Pandas专门为解决数据分析任务而设计,尤其擅长处理以下类型的数据:
- 表格数据(如SQL表格、Excel表格)
- 时间序列数据
- 异构数据(不同类型的数据列)
- 带标签的数据(行列都有标识)
### 1.2 Pandas的核心优势
1. **高效处理**:基于NumPy实现,运算性能优异
2. **灵活索引**:支持复杂的行列索引操作
3. **缺失值处理**:内置完善的缺失值处理方法
4. **数据对齐**:自动按标签对齐不同数据源
5. **丰富IO**:支持CSV、Excel、SQL、JSON等多种数据格式
### 1.3 安装与导入
```python
# 安装命令
pip install pandas
# 标准导入方式
import pandas as pd
Series是Pandas中最基本的一维数据结构,可以看作带标签的数组。其特点包括:
+--------+-----------+
| Index | Values |
+--------+-----------+
| 0 | 'A' |
| 1 | 'B' |
| 2 | 'C' |
+--------+-----------+
DataFrame是Pandas中最常用的二维表格型数据结构,特点包括:
+--------+-----------+-----------+-----------+
| Index | Column A | Column B | Column C |
+--------+-----------+-----------+-----------+
| 0 | 1 | 'X' | True |
| 1 | 2 | 'Y' | False |
+--------+-----------+-----------+-----------+
import pandas as pd
# 基本创建(自动生成数字索引)
s1 = pd.Series([1, 3, 5, 7])
print(s1)
# 自定义索引
s2 = pd.Series([10, 20, 30], index=['a', 'b', 'c'])
print(s2)
data = {'北京': 2154, '上海': 2428, '广州': 1867}
s3 = pd.Series(data)
print(s3)
dates = pd.date_range('20230101', periods=4)
s4 = pd.Series([1.2, 3.4, 5.6, 7.8], index=dates)
s5 = pd.Series([1, None, 3, np.nan])
s = pd.Series([10, 20, 30], index=['a', 'b', 'c'])
print(s.values) # 值数组 [10 20 30]
print(s.index) # 索引对象 Index(['a', 'b', 'c'])
print(s.dtype) # 数据类型 int64
print(s.shape) # 形状 (3,)
print(s.size) # 元素数量 3
print(s.name) # 名称 None
data = {
'城市': ['北京', '上海', '广州'],
'人口(万)': [2154, 2428, 1867],
'GDP(亿)': [40269, 43214, 28232]
}
df1 = pd.DataFrame(data)
print(df1)
df2 = pd.DataFrame(
data,
index=['a', 'b', 'c'], # 行索引
columns=['城市', 'GDP(亿)'] # 选择/排序列
)
arr = np.random.rand(3, 4)
df3 = pd.DataFrame(arr, columns=list('ABCD'))
data = [
['北京', 2154, 40269],
['上海', 2428, 43214]
]
df4 = pd.DataFrame(data, columns=['城市', '人口', 'GDP'])
s1 = pd.Series([2154, 2428, 1867])
s2 = pd.Series([40269, 43214, 28232])
df5 = pd.DataFrame({'人口': s1, 'GDP': s2})
dates = pd.date_range('20230101', periods=6)
df6 = pd.DataFrame(np.random.randn(6,4), index=dates, columns=list('ABCD'))
arrays = [
['A', 'A', 'B', 'B'],
[1, 2, 1, 2]
]
index = pd.MultiIndex.from_arrays(arrays, names=('字母', '数字'))
df7 = pd.DataFrame(np.random.randn(4, 3), index=index, columns=['X', 'Y', 'Z'])
df = pd.DataFrame({'A': [1,2], 'B': [3,4]})
print(df.shape) # 形状 (2,2)
print(df.index) # 行索引 RangeIndex(start=0, stop=2, step=1)
print(df.columns) # 列索引 Index(['A', 'B'])
print(df.dtypes) # 每列数据类型
print(df.values) # 二维ndarray
print(df.T) # 转置
s = pd.Series([10, 20, 30], index=['a', 'b', 'c'])
# 标签索引
print(s['a']) # 10
# 位置索引
print(s.iloc[0]) # 10
# 布尔索引
print(s[s > 15]) # b 20, c 30
df = pd.DataFrame({'A': [1,2,3], 'B': [4,5,6]})
# 列选择
print(df['A']) # 获取A列
# 行选择
print(df.loc[0]) # 第一行
print(df.iloc[0:2]) # 前两行
# 行列组合
print(df.loc[0, 'A']) # 1
df['C'] = df['A'] + df['B'] # 新增列
df['A'] = [10, 20, 30] # 修改列
# 删除列
df.drop('A', axis=1, inplace=True)
# 删除行
df.drop([0,1], axis=0, inplace=True)
# 创建含缺失值的数据
df = pd.DataFrame({
'A': [1, None, 3],
'B': [None, 5, 6]
})
# 填充缺失值
df_filled = df.fillna({'A': df['A'].mean(), 'B': 0})
# 创建销售数据
sales = pd.DataFrame({
'日期': pd.date_range('20230101', periods=5),
'产品': ['A', 'B', 'A', 'C', 'B'],
'销量': [120, 150, 80, 200, 90]
})
# 按产品汇总
summary = sales.groupby('产品')['销量'].sum()
Pandas的Series和DataFrame为数据分析提供了强大的基础工具。通过本文的学习,您应该已经掌握:
建议读者通过实际数据集练习这些操作,逐步掌握Pandas的强大功能。后续可以进一步学习: - 数据清洗与预处理 - 数据聚合与分组操作 - 时间序列处理 - 性能优化技巧 “`
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。