You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R语言中按固定列数拆分数据框为列表的方法咨询

Solution to Split DataFrame into Column Chunks

Absolutely! You can create a reusable function to split your dataframe into chunks of a specified number of columns (here, 3) where each chunk is a separate dataframe stored in a list. Here's how to do it:

Step 1: Define the Reusable Function

import pandas as pd

def split_df_into_column_chunks(df, chunk_size=3):
    # Split the dataframe's column names into consecutive groups of `chunk_size`
    column_groups = [df.columns[i:i+chunk_size] for i in range(0, len(df.columns), chunk_size)]
    # Generate a list of dataframes, each containing one group of columns
    return [df[group] for group in column_groups]

Step 2: Test the Function with a Sample DataFrame

Let’s walk through an example to see it in action:

# Create a sample dataframe with 10 columns (so the last chunk will have 1 column)
sample_df = pd.DataFrame({
    f'col{num}': range(5) for num in range(1, 11)
})

# Split into chunks of 3 columns
df_chunks = split_df_into_column_chunks(sample_df, chunk_size=3)

# Verify the result
print("First chunk (columns 1-3):")
print(df_chunks[0])
print("\nSecond chunk (columns 4-6):")
print(df_chunks[1])
print("\nThird chunk (columns7-9):")
print(df_chunks[2])
print("\nFourth chunk (column10):")
print(df_chunks[3])

How It Works

  • The function first splits the dataframe’s column names into groups of chunk_size (default 3). If the total number of columns isn’t perfectly divisible by chunk_size, the last group will automatically include any remaining columns.
  • For each group of columns, it creates a new dataframe by selecting those columns from the original dataframe and adds it to the result list.

This approach is efficient, readable, and handles edge cases like uneven column counts gracefully.

内容的提问来源于stack exchange,提问作者Adrian Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:40:04