当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python pyspark DataFrame.to_dict用法及代码示例


本文简要介绍 pyspark.pandas.DataFrame.to_dict 的用法。

用法:

DataFrame.to_dict(orient: str = 'dict', into: Type = <class 'dict'>) → Union[List, collections.abc.Mapping]

将 DataFrame 转换为字典。

可以使用参数自定义键值对的类型(见下文)。

注意

仅当生成的 pandas DataFrame 预计很小时才应使用此方法,因为所有数据都加载到驱动程序的内存中。

参数

orient字符串 {‘dict’, ‘list’, ‘series’, ‘split’, ‘records’, ‘index’}

确定字典值的类型。

  • ‘dict’(默认):dict like {column -> {index -> value}}

  • ‘list’: 像 {column -> [values]} 这样的字典

  • ‘series’: dict 像 {column -> Series(values)}

  • ‘split’: 像 {‘index’ -> [索引], ‘columns’ -> [列], ‘data’ -> [值]}

  • ‘records’: 类似 [{column -> value}, ... , {column -> value}] 的列表

  • ‘index’: 像 {index -> {column -> value}} 这样的字典

允许使用缩写。 s 表示 seriessp 表示 split

into类,默认字典

collections.abc.Mapping 子类用于返回值中的所有 Mapping。可以是实际类或所需映射类型的空实例。如果你想要一个 collections.defaultdict,你必须把它初始化。

返回

dict、list 或 collections.abc.Mapping

返回代表 DataFrame 的 collections.abc.Mapping 对象。生成的转换取决于orient 参数。

例子

>>> df = ps.DataFrame({'col1': [1, 2],
...                    'col2': [0.5, 0.75]},
...                   index=['row1', 'row2'],
...                   columns=['col1', 'col2'])
>>> df
      col1  col2
row1     1  0.50
row2     2  0.75
>>> df_dict = df.to_dict()
>>> sorted([(key, sorted(values.items())) for key, values in df_dict.items()])
[('col1', [('row1', 1), ('row2', 2)]), ('col2', [('row1', 0.5), ('row2', 0.75)])]

您可以指定返回方向。

>>> df_dict = df.to_dict('series')
>>> sorted(df_dict.items())
[('col1', row1    1
row2    2
Name: col1, dtype: int64), ('col2', row1    0.50
row2    0.75
Name: col2, dtype: float64)]
>>> df_dict = df.to_dict('split')
>>> sorted(df_dict.items())  
[('columns', ['col1', 'col2']), ('data', [[1..., 0.75]]), ('index', ['row1', 'row2'])]
>>> df_dict = df.to_dict('records')
>>> [sorted(values.items()) for values in df_dict]  
[[('col1', 1...), ('col2', 0.5)], [('col1', 2...), ('col2', 0.75)]]
>>> df_dict = df.to_dict('index')
>>> sorted([(key, sorted(values.items())) for key, values in df_dict.items()])
[('row1', [('col1', 1), ('col2', 0.5)]), ('row2', [('col1', 2), ('col2', 0.75)])]

您还可以指定映射类型。

>>> from collections import OrderedDict, defaultdict
>>> df.to_dict(into=OrderedDict)
OrderedDict([('col1', OrderedDict([('row1', 1), ('row2', 2)])), ('col2', OrderedDict([('row1', 0.5), ('row2', 0.75)]))])

如果你想要一个 defaultdict ,你需要初始化它:

>>> dd = defaultdict(list)
>>> df.to_dict('records', into=dd)  
[defaultdict(<class 'list'>, {'col..., 'col...}), defaultdict(<class 'list'>, {'col..., 'col...})]

相关用法


注:本文由纯净天空筛选整理自spark.apache.org大神的英文原创作品 pyspark.pandas.DataFrame.to_dict。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。