Python 的 pandas DataFrame 简介

Python 的 pandas DataFrame 简介

pandas 是一个开源的 Python 库,它提供了高性能的数据操控,使得数据分析变得快速和简单。典型的 pandas 用途有重塑(reshape)、排序(sort)、切片(slice)、聚合(aggregate)和合并(merge)数据。

pandas 库的底层是 NumPy库。NumPy是用来处理数组的,它的性能比传统的 Python 列表,高得多,因为它把数据存放在一块连续的内存里。

pandas 处理三种关键的数据结构:

  • Series(系列):这是一个类似于一维数组的对象,包含一个数据数组和一个数据标签数组。数据标签数组被称作index,如果用户没有明确指明 indexindex 会被自动指明使用从 0n - 1 范围里的整数;

  • DataFrame(数据帧):用来表示数据表格,比如包含列列表电子表格。数据帧对象有助于在行和列中存储和操作表格数据。数据帧对象对行和列都有索引;

  • Panel(面板): 这是一个数据三维容器。

在数据分析中,数据帧是一个关键数据结构。接下来我们简单地介络一个数据帧对象的基本操作。

数据帧的操作

创建数据帧有好几种方法,比如可以从字典中、从 CSV 文件中,从 Excel 表格中,或从 NumPy 数组中创建。最简单的方法,是从字典中创建。在下面的代码中,我们从字典中创建了一个数据帧:

import pandas as pd

weekly_data = {
   'day': ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日'],
               '温度':[40, 33, 42, 31, 41, 40, 30],
               '天气': ["晴天", "多云", "晴天", "下雨", "晴天", "多云", "下雨"]}

df = pd.DataFrame(weekly_data)

print(df)

上面的代码会产生下面的输出:

   day  温度  天气
0  星期一  40  晴天
1  星期二  33  多云
2  星期三  42  晴天
3  星期四  31  下雨
4  星期五  41  晴天
5  星期六  40  多云
6  星期日  30  下雨

pandas 库在方法和属性方面非常非富。DataFrame对象的常用属性和方法如下:

  • index:这个属性提供数据帧对象的索引(或标签)列表;
  • columns:这个属性提供数据帧对象中的列列表;
  • size:这个属性是数据帧的大小,是列数和行数的乘积;
  • shape:提供一个元组对象,表示数据帧的维度;
  • axes:返回一个表示数据帧对象轴的列表,包括行和列;
  • describe:这个强大的方法生成统计数据,如计数、平均值、标准差以及最小值和最大值;
  • head:类似于 head 命令,这个方法返回数据帧对象的前 n (默认是 5)行;
  • tail:这个方法类似于 tail 命令,这个方法返回数据帧对像的最后 n (默认是 5)行;
  • drop_duplicates:在数据帧的所有列中,删除重复的行;
  • dropna:此方法从数据帧中删除缺失的值(如行或列)。通过向此方法传递适当的参数,我们可以删除行或列。
    此外,我们可以设置是根据丢失值的一次出现删除行还是仅在行或列中的所有值都丢失时删除行或列。
  • sort_values:这个方法,可以基于一列或多列对行排序。

接下来,我们讲解几个基础操作。

设置一个自定义索引

列标签(索引)通常根据字典提供的数据添加,或根据使用的任何其他输入数据流添加。有两种方法更改数据帧的索引,
下面一一讲解:

  1. 把其中一个数据列作为索引,看下面的代码:
import pandas as pd

weekly_data = {
   'day': ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日'],
               '温度':[40, 33, 42, 31, 41, 40, 30],
               '天气': ["晴天", "多云", "晴天", "下雨", "晴天", "多云", "下雨"]}


df = pd.DataFrame(weekly_data)

df_new = df.set_index('day')

print(df)
print(df_new)

上面的代码输出结果如下:

   day  温度  天气
0  星期一  40  晴天
1  星期二  33  多云
2  星期三  42  晴天
3  星期四  31  下雨
4  星期五  41  晴天
5  星期六  40  多云
6  星期日  30  下雨
     温度  天气
day        
星期一  40  晴天
星期二  33  多云
星期三  42  晴天
星期四  31  下雨
星期五  41  晴天
星期六  40  多云
星期日  30  下雨
  1. 通过指定一个列表,手动指明索引:
import pandas as pd

weekly_data = {
   'day': ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日'],
               '温度':
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dowhileprogramming

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值