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


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。