文章目录
欢迎关注公众号【Python开发实战】,免费领取Python学习电子书!
工具-pandas
pandas库提供了高性能、易于使用的数据结构和数据分析工具。其主要数据结构是DataFrame,可以将DataFrame看做内存中的二维表格,如带有列名和行标签的电子表格。许多在Excel中可用的功能都可以通过编程实现,例如创建数据透视表、基于其他列计算新列的值、绘制图形等。还可以按照列的值对行进行分组,或者像SQL中那样连接表格。pandas也擅长处理时间序列。
但是介绍pandas之前,需要有numpy的基础,如果还不熟悉numpy,可以查看numpy快速入门教程 。
导入pandas
import pandas as pd
Dataframe对象
一个DataFrame对象表示一个电子表格,带有单元格值、列名和行索引标签。可以定义表达式基于其他列计算列的值、创建数据透视表、按行分组、绘制图形等。可以将DataFrame视为Series的字典。
保存与加载
pandas可以将DataFrame保存到不同的后端,包括CSV、Excel、json、HTML和HDF5文件,或者SQL数据库中。
现在创建一个DataFrame来演示。
my_df = pd.DataFrame(
[['Biking', 68.5, 195, np.nan], ['Dancing', 83.1, 1984, 3]],
columns=['hobby', 'weight', 'birthyear', 'children'],
index=['alice', 'bob']
)
my_df
输出:
保存
将DataFrame保存到CSV、html和json文件中。
my_df.to_csv('my_df.csv')
my_df.to_html('my_df.html')
my_df.to_json('my_df.json')
现在看一下保存的文件内容。
for filename in ('my_df.csv', 'my_df.html', 'my_df.json'):
print('#', filename)
with open(filename, 'rt') as f:
print(f.read())
print()
输出:
my_df.csv
,hobby,weight,birthyear,children
alice,Biking,68.5,195,
bob,Dancing,83.1,1984,3.0
my_df.html
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>hobby</th>
<th>weight</th>
<th>birthyear</th>
<th>children</th>
</tr>
</thead>
<tbody>
<tr>
<th>alice</th>
<td>Biking</td>
<td>68.5</td>
<td>195</td>
<td>NaN</td>
</tr>
<tr>
<th>bob</th>
<td>Dancing</td>
<td>83.1</td>
<td>1984</td>
<td>3.0</td>
</tr>
</tbody>
</table>
my_df.json
{"hobby":{"alice":"Biking","bob":"Dancing"},"weight":{"alice":68.5,"bob":83.1},"birthyear":{"alice":195,"bob":1984},"children":{"alice":null,"bob":3.0}}
请注意,保存为CSV文件时,列索引被保存为第一行,行索引被保存为第一列。在HTML文件中都保存为标签。在json文件中保存为键。
保存为其他格式时工作原理也相似,但是有些格式需要安装额外的库。例如,保存到Excel需要openpyxl库。
try:
my_df.to_excel('my_df.xlsx', sheet_name='People')
except ImportError as e:
print(e)
加载
从CSV文件中加载DataFrame。
my_df_loaded = pd.read_csv('my_df.csv', index_col=0)
my_df_loaded
输出:
还有read_json、read_html和read_excel等函数,加载对应格式的文件。
Original: https://blog.csdn.net/qq_38727995/article/details/124150657
Author: 凯旋.Lau
Title: pandas教程07—DataFrame的保存与加载
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/753438/
转载文章受原作者版权保护。转载请注明原作者出处!