ホームページ  >  記事  >  バックエンド開発  >  `df.to_numpy()` を使用して欠損値のある Pandas DataFrame を NumPy 配列に変換し、データ型を保持するにはどうすればよいですか?

`df.to_numpy()` を使用して欠損値のある Pandas DataFrame を NumPy 配列に変換し、データ型を保持するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-06 03:57:02831ブラウズ

How can I convert a Pandas DataFrame with missing values into a NumPy array using `df.to_numpy()` and preserve data types?

欠損値のある Pandas データフレームを NumPy 配列に変換する

df.to_numpy() を使用する

欠損値のある Pandas データフレームを NumPy に変換するには欠損値を表す np.nan を含む配列の場合は、 df.to_numpy() メソッドを使用します。これは、データフレームとインデックス/シリーズ オブジェクトの両方から NumPy 配列を取得する一貫した信頼性の高い方法を提供します。

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

df = pd.DataFrame({
    "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],
}, index=[1, 2, 3, 4, 5, 6, 7])

np_array = df.to_numpy()
print(np_array)</code>

これにより、np.nan:

[[ 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]]
として表される欠損値を含む NumPy 配列が出力されます。

データ型の保持

NumPy 配列のデータ型を保持するには、np.rec.fromrecords() 関数を使用します。

<code class="python">v = df.reset_index()
np_array_dtypes = np.rec.fromrecords(v, names=v.columns.tolist())
print(np_array_dtypes)</code>

これにより、元の配列で NumPy 配列が出力されます。データ型は次のように保存されます:

rec.array([('1', 1, 0.2, 0.5), ('2', 2, np.nan, 0.5), ('3', 3, 0.2, 0.5),
           ('4', 4, 0.2, np.nan), ('5', 5, 0.2, 0.5), ('6', 6, np.nan, 0.5),
           ('7', 7, np.nan, np.nan)],
          dtype=[('index', '<U1'), ('A', '<f8'), ('B', '<f8'), ('C', '<f8')])

以上が`df.to_numpy()` を使用して欠損値のある Pandas DataFrame を NumPy 配列に変換し、データ型を保持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。