R语言:按行长度拆分含DataFrame的列表为两个子列表
快速拆分DataFrame列表的方案
嘿,这个需求其实挺常见的,用Python的列表推导式结合pandas的属性就能轻松搞定,直接上代码和解释:
核心实现代码
import pandas as pd # 假设你的原始大型列表是L # 筛选所有包含5行数据的DataFrame five_row_dfs = [df for df in L if df.shape[0] == 5] # 筛选所有包含13行数据的DataFrame thirteen_row_dfs = [df for df in L if df.shape[0] == 13]
细节说明
df.shape[0]是pandas里获取DataFrame行数的标准方式,shape返回的是(行数, 列数)的元组,取第一个元素就是行数- 列表推导式在这里既简洁又高效,比写循环逐个判断再append要清爽很多
- 如果你担心原始列表里混了其他行数的DataFrame(虽然你明确说只有两种),可以额外加个收集异常的列表:
unexpected_dfs = [df for df in L if df.shape[0] not in (5, 13)]
这样处理完,five_row_dfs就是所有5行结构的DataFrame集合,thirteen_row_dfs就是13行结构的集合啦,完全符合你的需求~
内容的提问来源于stack exchange,提问作者user8705181
相关产品推荐
相关产品推荐

