Pandas Series和向量的区别

Pandas Series和向量的区别

Pandas是一个广泛应用的开源Python库,提供了广泛的功能,使数据分析更加有效。Pandas包主要用于预处理数据活动,包括清洗、转换和操作数据。因此,它是分析员和数据科学家的非常有用的工具。本文讨论了Pandas中最流行的两种数据结构——Series和DataFrame,以及Series和向量的比较。

Python Pandas Series

Python Pandas库中,Series是一个一维的带标签的数组,可以包含任何数据类型。它类似于电子表格中的一列或R中的数据框。通过将值的列表传递给pd.Series()函数来创建一个Series,并且可以使用索引或标签来访问它。

标签必须是可哈希的类型,但不需要是唯一的。该对象具有许多用于处理索引的方法,并支持基于整数和标签的索引。

它具有以下参数 −

  • Data − 任何列表、字典或标量值都可以用作数据。

  • index − 索引的值应该是唯一的且可哈希的。它的大小必须与数据相同。如果没有提供索引,默认情况下将使用np.arrange(n)。

  • Dtype − 它指的是Series的数据类型。

  • copy − 它用于复制数据。

创建一个Series

我们可以通过四种方法创建一个Series −

使用Pandas库中的pd.Series函数

import pandas as pd
import numpy as np
# Create a series from a list
s = pd.Series([1, 3, 5, np.nan, 6, 8])
print(s)

输出

0    1.0
1    3.0
2    5.0
3    NaN
4    6.0
5    8.0
dtype: float64

这将创建一个Pandas Series,其中包含值1、3、5、NaN、6、8。

从NumPy数组直接创建Series

import numpy as np
import pandas as pd
# Create a NumPy array
data = np.array([1, 3, 5, np.nan, 6, 8])
# Create a series from the array
s = pd.Series(data)
print(s)

输出

0    1.0
1    3.0
2    5.0
3    NaN
4    6.0
5    8.0
dtype: float64

这两种方法都会创建一个Pandas序列,其索引是从0开始的一系列整数。您还可以在创建序列时指定自己的索引值。

使用标量值创建序列

使用标量值创建序列是我们今天要研究的最后一种方法。在这种情况下,您可以提供一个单个值的数据,并在整个索引期间将其重复。

示例

import pandas as pd
if __name__ == '__main__':
   series = pd.Series(data=3.,
      index=['a', 'b', 'c', 'd'],
      name='series_from_scalar')
   print(series)

输出

a    3.0
b    3.0
c    3.0
d    3.0
Name: series_from_scalar, dtype: float64

从ndarray创建Series

NumPy的random.randint()函数可以创建一个填充有随机数字的ndarray,它是创建Series的最简单方法之一。

示例

import numpy as np
import pandas as pd
if __name__ == '__main__':
   data = np.random.randint(0, 10, 5)
   series = pd.Series(data=data,
      index=['a', 'b', 'c', 'd', 'e'],
      name='series_from_ndarray')
   print(series)

输出

a    5
b    7
c    0
d    8
e    5
Name: series_from_ndarray, dtype: int64

数据帧

另一方面,向量是一个一维的数字值数组。在Pandas中,向量可以表示为具有单个数据类型(例如整数、浮点数或对象)的系列。向量通常用于数学和统计操作,并可使用pd.to_numeric()函数或从数据帧中选择单个列来创建。

使用pd,您可以从多个数据源(包括字典、2D NumPy数组和系列)生成数据帧。 使用Pandas系列字典创建Pandas数据帧

索引的长度必须与系列相同。如果未指定索引,将自动创建一个索引,其值为:[0,…,len(data) – 1]。

#Creating a DataFrame from a dictionary of Series
import pandas as pd
data = pd.DataFrame({
   "Class 1": pd.Series([22, 33, 38], index=["math avg", "science avg",  "english avg"]),
   "Class 2": pd.Series([45, 28, 36], index=["math avg", "science avg",  "english avg"]),
   "Class 3": pd.Series([32, 41, 47], index=["math avg", "science avg",  "english avg"])
})

print(data)

输出

Class 1  Class 2  Class 3
math avg          22       45       32
science avg       33       28       41
english avg       38       36       47
以下是Python Pandas中序列和数据帧之间差异的结论。 DataFrame Series
数据结构 2D表格 1D数组
可包含异构数据
可包含列标签
可包含行标签
可通过列或行标签索引
可通过列或行标签切片
支持算术运算
支持算术运算

结论

总之,在Python Pandas中,序列和向量的主要区别是−

  • Series可以保存任何数据类型,而向量只能保存数值

  • Series有一个标签索引,而向量没有

  • Series可以使用标签或索引访问,而向量只能使用索引访问

理解序列和向量之间的差异可以帮助您选择合适的数据结构来处理和分析Pandas中的数据。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程