【问题标题】:How can i split a dataframe into groups by its columns using a for loop, splitting df only by its columns, not rows [duplicate]如何使用 for 循环按列将数据框拆分为组,仅按列拆分 df,而不是行 [重复]
【发布时间】:2019-04-13 14:37:40
【问题描述】:

我有一个包含 2000 列的数据框,并且想编写一个快速代码将此数据框拆分为 10 组,每组 200 列。

df_name = ['df1','df2','df3','df4','df5','df6','df7','df8','df9','df10']

for name in df_name:
    for n in np.arange(0,2000,200):
        name = df[df.columns[n:n+200]]

【问题讨论】:

  • 如果您使用带有键 df1、df2...的字典,则可以使用该代码段...
  • 这个问题是关于将列拆分成不同的集合,而stackoverflow.com/questions/17315737/…是指将行拆分成不同的集合。

标签: python pandas dataframe


【解决方案1】:

由于您无法通过使用name = ... 的字符串赋值来动态构建环境对象,因此请考虑使用包含zip 的字典推导来构建数据框字典,以逐元素迭代df_name 和200 个倍数:

df_dict = {k:df[df.columns[n:n+199]] \ 
                for k,n in zip(df_name, range(0,2000,200))}

如果存储在元组、列表或字典等容器中,您不会丢失数据框的功能:

df_dict['df1'].describe()
df_dict['df2'].head()
df_dict['df3'].tail()
...

【讨论】:

  • 很好,非常感谢
猜你喜欢
  • 2014-08-06
  • 2014-12-04
  • 1970-01-01
  • 2018-05-07
  • 1970-01-01
  • 2016-06-27
  • 1970-01-01
相关资源
最近更新 更多