将包含缺失值的 Pandas DataFrame 转换为 NumPy 数组是数据分析中的常见任务。所需的输出是让 np.nan 代表缺失值。
此转换的推荐方法是使用 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中文网其他相关文章!