欢迎关注公众号【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

输出:

image-20220413141752772

保存

将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)   # index_col=0 指定行索引的位置
my_df_loaded

输出:

image-20220413141938563

还有read_json、read_html和read_excel等函数,加载对应格式的文件。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐