
使用Python列表和字典创建Pandas DataFrame
版权申诉
331KB |
更新于2024-09-11
| 89 浏览量 | 举报
收藏
"这篇文章主要介绍了如何使用Python的Pandas库从列表或字典创建DataFrame对象。通常,我们使用`read_excel`、`read_csv`或`read_sql`等函数导入数据,但在处理少量数据或需要自定义计算时,直接创建DataFrame会更方便。在创建DataFrame时,可以使用`from_dict`、`from_records`、`from_items`或DataFrame的构造函数,但这些方法的具体用法可能让人混淆。作者通过实例展示了如何通过不同方法生成DataFrame,并以3个虚构公司的3个月销售数据为例进行说明。"
在Python中,Pandas的DataFrame是一种强大的数据结构,常用于数据分析。创建DataFrame的一个常见方式是从Python的数据结构,如列表或字典出发。当使用列表和字典创建DataFrame时,需要注意它们之间的区别:
1. 字典列表:在这种方法中,每个元素都是一个字典,字典的键成为DataFrame的列名,而值则对应于列中的数据。例如:
```python
sales = [{'account': 'JonesLLC', 'Jan': 150, 'Feb': 200, 'Mar': 140},
{'account': 'AlphaCo', 'Jan': 200, 'Feb': 210, 'Mar': 215},
{'account': 'BlueInc', 'Jan': 50, 'Feb': 90, 'Mar': 95}]
df = pd.DataFrame(sales)
```
这种方式创建的DataFrame,列名基于字典的键,行数据则是字典的值。
2. 字典(列优先):如果希望以列优先的方式创建DataFrame,可以使用`from_dict`方法,将字典的键作为行索引,值作为列:
```python
sales_dict = {'account': ['JonesLLC', 'AlphaCo', 'BlueInc'],
'Jan': [150, 200, 50],
'Feb': [200, 210, 90],
'Mar': [140, 215, 95]}
df = pd.DataFrame.from_dict(sales_dict, orient='index')
```
使用`orient='index'`参数,使得字典的键变成DataFrame的行索引,而值则作为列。
3. 记录列表(元组或列表):`from_records`方法适用于元组列表或列表的列表,其中每个元素代表一行数据:
```python
records = [('JonesLLC', 150, 200, 140),
('AlphaCo', 200, 210, 215),
('BlueInc', 50, 90, 95)]
df = pd.DataFrame.from_records(records, columns=['account', 'Jan', 'Feb', 'Mar'])
```
在这个例子中,元组的每个元素映射到DataFrame的一列。
4. 元组字典(from_items):`from_items`方法接受一个元组的元组,每个元组由列名和对应的值组成:
```python
items = [('account', ['JonesLLC', 'AlphaCo', 'BlueInc']),
('Jan', [150, 200, 50]),
('Feb', [200, 210, 90]),
('Mar', [140, 215, 95])]
df = pd.DataFrame.from_items(items, columns=['account', 'Jan', 'Feb', 'Mar'])
```
这种方法可以更直接地控制列名和对应的值。
理解这些创建DataFrame的方法对于高效地处理数据至关重要。此外,Pandas还支持从其他数据源如SQL数据库、HTML表格等导入数据,以及通过`pd.concat`、`pd.merge`等函数对DataFrame进行操作。在生成Excel报表时,可以使用`to_excel`方法将DataFrame导出为Excel文件,以便于进一步的分享和分析。掌握这些基本技能将极大地提升你在数据分析过程中的效率。
相关推荐










weixin_38550812
- 粉丝: 3
最新资源
- ASP.NET购物车功能实现与存储过程应用示例
- 基于VS2005的C#火车订票系统开发分享
- TMC32054序列芯片上的DSP语音录放实验
- Ajax实现省市区联动下拉选择框教程
- C#计算器Windows程序源码解析与应用
- Java加密组件详解:掌握DES、RSA、SHA算法
- 智力小游戏:青蛙位置互换挑战
- Windows Mobile 5.0平台GPS应用开发教程
- 矮人DOS工具箱4.2正式版发布:纯DOS支持与启动密码功能
- ARM2410上UCOS-II操作系统移植详解
- 计算机硬件接口速查手册 - 快速识别引脚定义
- InterBase 7.5.1汉化版发布:数据库管理系统新选择
- DELPHI编程:创建可调范围乘法表实例
- PHP邮件发送类:轻松实现SMTP邮件发送功能
- 全面的求职文档资源包,简历与求职信下载
- 基于JSP开发的学生选课系统设计与实现
- C#实现汉字转拼音功能的源码解析
- 2023 ACCP S1九月毕业笔试题解析
- SQL Server 2000 JDBC包:JSP开发必备组件
- C#开发的QQ软件实现及其在Visual Studio中的应用
- Struts入门代码实例分享:三步学会Struts开发
- VB与SQL Server打造高效学生管理系统
- 《C语言大学使用教程》更新及勘误信息汇总
- FastReport v4.2 控件包的源码与实例解析