【问题标题】:Convert Row values into multiple columns- Dask将行值转换为多列 - Dask
【发布时间】:2020-01-28 08:24:09
【问题描述】:

我有一个包含单列数据的文件。其中很少需要转换为列作为标题。经过几次 dask 计算,我将数据框减少如下:

In [9]: df.compute()
Out[9]:
                                    *
0                    140 Global Intel
1                         1 Frequency
2                          2 Currency
3               3 Currency Conversion
4                            4 Market
5                      5 Segmentation
6                            6 Sector

是否可以将行转换为列并使用 dask 本身创建一个新的数据框? 任何帮助表示赞赏。

编辑: 转置后我的最终数据帧应该是什么样子。

In [22]: df_final
Out[22]:
Empty DataFrame
Columns: [140 Global Intel, 1 Frequency, 2 Currency, 3 Currency Conversion, 4 Market, 5 Segmentation, 6 Sector]
Index: []

【问题讨论】:

  • 但是您想使用带有该标题的单列数据集吗?或者将它用于另一个标题?在后一种情况下,您可以获取值并以这些值作为标头创建一个新数据框(您可以在创建或更新数据框时指定该选项,至少在熊猫中,它应该具有与 dask 相同的 API)
  • @Isabi 我已包含最终输出以供参考
  • 根据https://github.com/dask/dask/issues/1651, df.compute() 应该返回一个熊猫数据框。因此,您可以使用 pandas api。 df_pandas = df.compute() cols = df_pandas.values.tolist() 。然后创建一个新的 dask 数据框,如https://stackoverflow.com/questions/39721800/convert-pandas-dataframe-to-dask-dataframe 所示

标签: dask dask-dataframe


【解决方案1】:

您可以使用以下方法从 DataFrame df 的列(在您的情况下为:column='*')创建一个空的 DataFrame:

import pandas as pd
df_empty = pd.DataFrame(columns=df.compute()[[column]].T)

如果你打印df_empty

Empty DataFrame
Columns: [(140 Global Intel, 1 Frequency, 2 Currency, 3 Currency Conversion, 4 Market, 5 Segmentation, 6 Sector)]
Index: [] 

如果您想切换回 Dask,请使用 dd.from_pandas

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-01
    • 2016-01-27
    相关资源
    最近更新 更多