【问题标题】:Split large dataframe in python by its columns按列拆分python中的大型数据框
【发布时间】:2022-01-21 10:43:33
【问题描述】:

嘿,我正在寻找一种解决方案,将数据集(数据框)按列等分。

df:400 行 × 3840 列

我希望最终有 16 个数据集 (400*240)。

我尝试在 pandas 中使用 iloc 进行迭代,但它变得混乱......

结果应如下所示: df_1 [:, 1:240] df_2 [;, 241:480]
... df_16 [;, 3600:3840]

谢谢!

【问题讨论】:

    标签: python dataframe loops split


    【解决方案1】:

    使用字典更容易:

    dic_df = {}
    for i in range(240):
       dic_df[i] = df[df.columns[16*i:16*(i+1)]]
    

    【讨论】:

      【解决方案2】:

      您可以为此使用 numpy array_split。在那里,您可以指定输入数组应拆分到多少个数组中。如果输入数组不均分,您将返回一个稍大的数组和 n-1/大小相同的数组,其中 n 是您需要的数组数。您可以使用轴参数来指定拆分输入的位置。 这里是documentation。

      【讨论】:

      • import numpy as np np.array_split(df, 16) 正在拆分行而不是列。我必须转置吗?如何将数据保存到 df_1 ... df_16?
      • 如果需要使用 np.array_split(df, 16, axis=1) ,您可以对其进行迭代并将结果存储在一个字典中,如 result = {'df_{i}' :dfs for i , dfs in enumerate(np.array_split(df, 16, axis=1), 1)}
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-01
      • 2016-06-27
      • 1970-01-01
      • 1970-01-01
      • 2020-08-13
      • 2017-05-09
      • 1970-01-01
      相关资源
      最近更新 更多