首页 > 后端开发 > Python教程 > 如何将缺失值的 Pandas DataFrame 转换为 NumPy 数组?

如何将缺失值的 Pandas DataFrame 转换为 NumPy 数组?

Linda Hamilton
发布: 2024-11-04 12:17:29
原创
601 人浏览过

How to Convert a Pandas DataFrame with Missing Values to a NumPy Array?

将包含缺失值的 Pandas DataFrame 转换为 NumPy 数组

将包含缺失值的 Pandas DataFrame 转换为 NumPy 数组是数据分析中的常见任务。所需的输出是让 np.nan 代表缺失值。

使用 df.to_numpy()

此转换的推荐方法是使用 df.to_numpy() 方法:

<code class="python">import numpy as np
import pandas as pd

# Create a DataFrame with missing values
index = [1, 2, 3, 4, 5, 6, 7]
a = [np.nan, np.nan, np.nan, 0.1, 0.1, 0.1, 0.1]
b = [0.2, np.nan, 0.2, 0.2, 0.2, np.nan, np.nan]
c = [np.nan, 0.5, 0.5, np.nan, 0.5, 0.5, np.nan]
df = pd.DataFrame({'A': a, 'B': b, 'C': c}, index=index)

# Convert to NumPy array
np_array = df.to_numpy()
print(np_array)</code>
登录后复制

这将输出:

<code class="python">array([[ nan,  0.2,  nan],
       [ nan,  nan,  0.5],
       [ nan,  0.2,  0.5],
       [ 0.1,  0.2,  nan],
       [ 0.1,  0.2,  0.5],
       [ 0.1,  nan,  0.5],
       [ 0.1,  nan,  nan]])</code>
登录后复制

保留数据类型

要保留输出 NumPy 数组中的数据类型,您可以使用 df.to_records() 方法:

<code class="python">records = df.to_records()
print(records.dtype)</code>
登录后复制

这将输出:

<code class="python">[('index', 'O'), ('A', '<f8'), ('B', '<f8'), ('C', '<f8')]</code>
登录后复制

其中 O 代表对象类型(索引),f8 代表 float64 类型(值)。

使用 np .rec.fromrecords,您可以将记录转换为结构化 NumPy 数组:

<code class="python">import numpy as np

np_array = np.rec.fromrecords(records, names=df.columns)
print(np_array.dtype)</code>
登录后复制

这将输出与记录相同的数据类型。

以上是如何将缺失值的 Pandas DataFrame 转换为 NumPy 数组?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板