如何动态创建Pandas DataFrame?生成按交互量排序的指定后缀数据框
解决方法
批量处理方案(避免重复编码)
把现有DataFrame存入字典,通过遍历完成排序和命名,一次代码覆盖所有目标DataFrame:
def process_dataframes(): # 假设函数内已生成onegram、twogram等5个DataFrame # 将目标DataFrame存入字典,键为原名称,值为对应DataFrame df_dict = { "onegram": onegram, "twogram": twogram, "threegram": threegram, "fourgram": fourgram, "original": original } sorted_df_dict = {} for name, df in df_dict.items(): # 按Interactions降序排序,取前100行 sorted_df = df.sort_values(by="Interactions", ascending=False).head(100) # 生成符合命名规则的新DataFrame并存入字典 sorted_name = f"{name}_interactions_sorted" sorted_df_dict[sorted_name] = sorted_df # 若需要直接生成对应名称的变量(而非通过字典访问),可使用globals() # globals()[sorted_name] = sorted_df return sorted_df_dict
使用方式
调用函数后,可通过字典快速获取排序后的结果:
sorted_results = process_dataframes() # 示例:获取onegram的排序结果 onegram_sorted = sorted_results["onegram_interactions_sorted"]
方案优势
- 完全避免重复编码,无需为每个DataFrame单独写排序逻辑
- 扩展性强:后续新增DataFrame时,只需在
df_dict中添加键值对即可 - 逻辑清晰,便于维护和调试
注意事项
- 确保所有原始DataFrame都包含
Interactions列,否则会触发KeyError - 若原始DataFrame行数不足100,
head(100)会返回全部行,不会报错
内容的提问来源于stack exchange,提问作者Mads Christensen
相关产品推荐
相关产品推荐

