NumPy 和 Pandas 是 Python 中处理数据的两个强大库。NumPy 提供了对多维数组的支持,而 Pandas 提供了更高级的数据处理功能,Pandas 擅长处理表格数据,比如用于分析时间序列和表格数据的 DataFrame 和 Series 对象。结合 NumPy 和 Pandas,可以处理从简单的数组计算到复杂的数据分析和处理的各种任务。

1、NumPy 数组与 Pandas DataFrame/Series 转换

NumPy 数组与 Pandas DataFrame/Series 是 Python 中常用的两种数据结构,它们都用于存储和处理数据。NumPy 数组是一种多维数组,它可以存储一维、二维、三维或更高维的数据。NumPy 数组的优点是速度快、效率高,适合用于数值计算。Pandas DataFrame 是一种表格型数据结构,它由行和列组成。Pandas DataFrame 的优点是灵活性强,适合用于各种数据分析任务。

1)NumPy 数组与 Pandas DataFrame转换

可以使用 pd.DataFrame() 函数将 NumPy 数组转换为 Pandas DataFrame。

代码如下,

import numpy as np
import pandas as pd

# 创建一个 NumPy 数组
array = np.array([1, 2, 3, 4])

# 将 NumPy 数组转换为 DataFrame
df = pd.DataFrame(array)

# 查看 DataFrame
print(df)

# 创建一个 NumPy 数组
array = np.array([1, 2, 3, 4])

# 将 NumPy 数组转换为 DataFrame,指定列名为 "a",如果不指定列名,则默认使用数字作为列名
df = pd.DataFrame(array, columns=["a"])

# 查看 DataFrame
print(df)

2)Pandas DataFrame 转换为 NumPy 数组

可以使用 df.to_numpy() 方法将 Pandas DataFrame 转换为 NumPy 数组。

代码如下,

import numpy as np
import pandas as pd

# 创建一个 DataFrame
df = pd.DataFrame({"a": [1, 2, 3, 4], "b": [5, 6, 7, 8]})

# 将 DataFrame 转换为 NumPy 数组
array = df.to_numpy()

# 查看 NumPy 数组
print(array)

# 创建一个 DataFrame,不包含列名
df = pd.DataFrame([1, 2, 3, 4])

# 将 DataFrame 转换为 NumPy 数组
array = df.to_numpy()

# 查看 NumPy 数组
print(array)

3)NumPy 数组转换为 Pandas Series

可以使用 pd.Series() 函数将 NumPy 数组转换为 Pandas Series。

代码如下,

import numpy as np
import pandas as pd

# 创建一个 NumPy 数组
array = np.array([1, 2, 3, 4])

# 将 NumPy 数组转换为 Series
series = pd.Series(array)

# 查看 Series
print(series)

2、Pandas 中使用 NumPy 函数

NumPy 函数可以直接应用于 Pandas 数据结构。

1)使用 NumPy 函数处理 Pandas DataFrame

import numpy as np
import pandas as pd

# 创建一个 DataFrame
df = pd.DataFrame({"a": [1, 2, 3, 4], "b": [5, 6, 7, 8]})

# 使用 NumPy 函数处理 DataFrame
df["a"] = np.sin(df["a"])

# 查看 DataFrame
print(df)

# 创建一个 DataFrame
df = pd.DataFrame({"a": [1, 2, 3, 4], "b": [5, 6, 7, 8]})

# 计算 DataFrame 的平均值
mean = np.mean(df["a"])

# 查看平均值
print(mean)

2)使用 NumPy 函数处理 Pandas Series

import numpy as np
import pandas as pd

# 创建一个 Series
series = pd.Series([1, 2, 3, 4])

# 使用 NumPy 函数处理 Series
series = np.sin(series)

# 查看 Series
print(series)

# 创建一个 Series
series = pd.Series([1, 2, 3, 4])

# 计算 Series 的平均值
mean = np.mean(series)

# 查看平均值
print(mean)

3)计算时间序列数据的差分

import numpy as np
import pandas as pd

# 创建时间序列数据
dates = pd.date_range('20210101', periods=6)
df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list('ABCD'))

# 查看时间序列数据
print(df)

推荐文档