使用Python列表和字典创建Pandas DataFrame
版权申诉
174 浏览量
更新于2024-09-11
收藏 331KB PDF 举报
"这篇文章主要介绍了如何使用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文件,以便于进一步的分享和分析。掌握这些基本技能将极大地提升你在数据分析过程中的效率。
2020-09-20 上传
2023-03-31 上传
2023-06-07 上传
2023-06-07 上传
2023-05-29 上传
2023-04-06 上传
2023-05-29 上传
2023-07-17 上传
2023-04-30 上传
weixin_38550812
- 粉丝: 3
- 资源: 894
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展