當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python pandas.DataFrame.to_records用法及代碼示例


用法:

DataFrame.to_records(index=True, column_dtypes=None, index_dtypes=None)

將 DataFrame 轉換為 NumPy 記錄數組。

如果請求,索引將作為記錄數組的第一個字段包含在內。

參數

index布爾值,默認為真

在結果記錄數組中包含索引,存儲在 ‘index’ 字段中或使用索引標簽(如果已設置)。

column_dtypesstr,類型,字典,默認無

如果是字符串或類型,則存儲所有列的數據類型。如果是字典,則為列名和索引 (zero-indexed) 到特定數據類型的映射。

index_dtypesstr,類型,字典,默認無

如果是字符串或類型,則存儲所有索引級別的數據類型。如果是字典,則索引級別名稱和索引 (zero-indexed) 到特定數據類型的映射。

僅當 index=True 時才應用此映射。

返回

numpy.recarray

NumPy ndarray 將 DataFrame 標簽作為字段,並將 DataFrame 的每一行作為條目。

例子

>>> df = pd.DataFrame({'A':[1, 2], 'B':[0.5, 0.75]},
...                   index=['a', 'b'])
>>> df
   A     B
a  1  0.50
b  2  0.75
>>> df.to_records()
rec.array([('a', 1, 0.5 ), ('b', 2, 0.75)],
          dtype=[('index', 'O'), ('A', '<i8'), ('B', '<f8')])

如果 DataFrame 索引沒有標簽,則 recarray 字段名稱設置為 ‘index’。如果索引有標簽,則將其用作字段名稱:

>>> df.index = df.index.rename("I")
>>> df.to_records()
rec.array([('a', 1, 0.5 ), ('b', 2, 0.75)],
          dtype=[('I', 'O'), ('A', '<i8'), ('B', '<f8')])

索引可以從記錄數組中排除:

>>> df.to_records(index=False)
rec.array([(1, 0.5 ), (2, 0.75)],
          dtype=[('A', '<i8'), ('B', '<f8')])

可以為列指定數據類型:

>>> df.to_records(column_dtypes={"A":"int32"})
rec.array([('a', 1, 0.5 ), ('b', 2, 0.75)],
          dtype=[('I', 'O'), ('A', '<i4'), ('B', '<f8')])

以及索引:

>>> df.to_records(index_dtypes="<S2")
rec.array([(b'a', 1, 0.5 ), (b'b', 2, 0.75)],
          dtype=[('I', 'S2'), ('A', '<i8'), ('B', '<f8')])
>>> index_dtypes = f"<S{df.index.str.len().max()}"
>>> df.to_records(index_dtypes=index_dtypes)
rec.array([(b'a', 1, 0.5 ), (b'b', 2, 0.75)],
          dtype=[('I', 'S1'), ('A', '<i8'), ('B', '<f8')])

相關用法


注:本文由純淨天空篩選整理自pandas.pydata.org大神的英文原創作品 pandas.DataFrame.to_records。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。