图解Pandas,创建数据对象 | 图文第2篇
01写在前面
大家好,我是阳哥,欢迎来到「Python数据之道」。
本次是《图解Pandas》系列图文内容的 第 02 篇,主要是对Pandas中 创建数据对象
进行介绍。
本文是付费阅读文章,付费阅读内容包括《图解Pandas》图文干货内容、可以在电脑端观看的视频以及配套的源代码等。
此外,为避免各种不必要的麻烦,微信没有退款机制,本文也不会退款,付费前请谨慎。
Pandas 是 Python数据分析中用的最多的工具,为了大家能够更好地学习 Pandas,阳哥开始制作一系列 《图解Pandas》 的内容。
《图解Pandas》 最主要的目标,是以动态图片、视频等方式呈现,实现从原理步骤拆解 Pandas 在数据处理过程中的主要知识点,以便大家能进一步了解 Pandas 的使用,形象地介绍 Pandas,进而使大家喜欢上 Pandas 这个得心应手的工具。
《图解Pandas》图文专题,最新的内容可以点击下面的图片进行查看。
在本文编写时,《图解Pandas》系列已发布的图文如下:
02Python环境
今天主要是对 Pandas 中 如何创建数据对象进行介绍。在微信视频号「Python数据之道」中发布的视频如下,视频时长约4分30秒,大家可以前往观看:
开始之前,按照惯例先介绍下本次内容涉及的Python环境,如下:
Python 3.8 Pandas 1.4.1 numpy 1.22.3
我是在 jupyter notebook 中运行代码的,首先引入相关 Python 库:
import pandas as pd
import numpy as np
print(f'pandas version:{pd.__version__}')
print(f'numpy version:{np.__version__}')
03Series
在Pandas中,主要包括两种类型的数据,一种是 Series
,另一种是 DataFrame
,DataFrame 中文翻译称之为“数据框”。创建数据对象也将围绕这两种数据类型来展开。
首先,咱们来学习如何创建 Series 数据,常见的方法有以下几种,根据不同的场景,选择合适的使用即可。在代码层面,一般是通过 pd.Series()
方法来实现。
通过列表创建 Series
第一种是通过列表创建Series,如图所示,左边为代码,右边为数据结果。
可以同时指定索引值。此外,还可以设置 name 参数值,以及其他的一些参数。
设置索引:
s2 = pd.Series([1,2,3],index=['a','b','c'])
s2
同时设置索引和name参数:
s3 = pd.Series(
[1,2,3],
index=['a','b','c'],
name='hello'
)
s3
通过字典创建 Series
第二种是通过字典创建Series,从实现结果来看,字典中的key值为Series的索引。
通过 ndarray 创建 Series
第三种是通过 numpy
的 array
数据来创建 Series,这里通过 random
函数来创建一个一维array数据,接着创建Series。
通过标量来创建 Series
第四种是通过标量来创建Series,所谓标量,也可以理解为是具体的单个数据。这里的标量为 1,通过设置索引的长度,可以控制创建数据的行数。
创建空的 Series
第五种是创建空的Series,这是一种特殊的方法,本身不会创建出具体的数据值,但空的Series也是有它特定的用途的。
04DataFrame
接下来,咱们来学习如何创建数据框,常用的方法有以下几种。在代码层面一般是通过 pd.DataFrame()
方法来实现。
创建空的 DataFrame
先来看如何创建空的数据框,代码如下所示。空的数据框,用途还是挺广泛的,在数据合并、数据采集等方面都可以使用。
通过 ndarray 创建 DataFrame
第2种是通过 numpy 的 array 数据来创建数据框,这里通过numpy 的random函数来创建一个二维array数据,接着创建数据框。
np.random.seed(0)
arr = np.random.randint(10,size=[5,3])
df = pd.DataFrame(arr,columns=list('abc'))
df
创建的数据如下:
也可以通过由 元组(tuple)组成的 array来创建数据框。需要注意的是,在代码方面,这里使用的是 pd.DataFrame.from_records()
方法。
# from_records
arr = np.array(
[
("Lemon", "长沙", 80, 90),
("Jack", "上海", 90, 75),
("Peter", "深圳", 60, 80),
]
)
df = pd.DataFrame.from_records(
arr,
columns=["name", "city", "math", "chem"]
)
df
数据结果如下:
不过,使用 pd.DataFrame()
也可以实现同样的结果。
arr = np.array(
[
("Lemon", "长沙", 80, 90),
("Jack", "上海", 90, 75),
("Peter", "深圳", 60, 80),
]
)
df = pd.DataFrame(
arr,
columns=["name", "city", "math", "chem"]
)
df
通过列表创建数据框
第3种是通过列表创建数据框,可以细分为几种不同的方法。
一维列表
可试读56%