pandas.DataFrame.to_records # 数据框。to_records ( index = True , column_dtypes = None , index_dtypes = None ) [来源] # 将 DataFrame 转换为 NumPy 记录数组。 如果需要,索引将作为记录数组的第一个字段包含在内。 参数: 索引bool,默认 True在结果记录数组中包含索引,存储在“索引”字段中或使用索引标签(如果设置)。 column_dtypes str、类型、字典,默认无如果是字符串或类型,则存储所有列的数据类型。如果是字典,则为列名和索引(零索引)到特定数据类型的映射。 index_dtypes str,类型,字典,默认无如果是字符串或类型,则该数据类型存储所有索引级别。如果是字典,则是索引级别名称和索引(零索引)到特定数据类型的映射。 仅当index=True时才应用此映射。 返回: numpy.rec.recarrayNumPy ndarray,其中 DataFrame 标签作为字段,DataFrame 的每一行作为条目。 也可以看看 DataFrame.from_records将结构化或记录 ndarray 转换为 DataFrame。 numpy.rec.recarray允许使用属性进行字段访问的 ndarray,类似于电子表格中的键入列。 例子 >>> 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 索引没有标签,则重新排列字段名称将设置为“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')])