首页 > 解决方案 > 将 Pandas 数据帧拆分为多个迷你数据帧

问题描述

这是我正在处理的程序的第二部分。我有一个熊猫数据框,它包括: Title|df1_data1|df1_data2|df1_data3|df1_data4|df2_data1|df2_data2|df2_data3|df2_data4|df3_data1|df3_data2|df3_data3|df3_data4

但是有两个规则:

  1. df不会总是包含 3 个文件(df1, df2, ) ,df3可能或多或少。
  2. 每个文件总是有 4 条数据。

我已经编写了代码的下一步,但输入需要这个更大的多个迷你数据帧。

因此,对于这个三个文件的示例,我需要将数据框拆分为

 1. |Title|df1_data1|df1_data2|df1_data3|df1_data4|
 2. |Title|df2_data1|df2_data2|df2_data3|df2_data4|
 3. |Title|df3_data1|df3_data2|df3_data3|df3_data4|

我目前正在尝试解决这个问题,我正在尝试遍历标题和每四个标题(不计算标题)我创建一个数据框... idk ima 继续尝试 PLS HELP

这是大数据框记住规则

thisdict = {'Title': ['aaarrr','hahahamhm','yaaahooo','yaahoo', 'oopsymhm', 'ayorrr'],
        'df1_data1': ['324','123','444','NOTHING', 'NOTHING', 'NOTHING'],
        'df1_data2': ['4314','4321','7658','NOTHING', 'NOTHING', 'NOTHING'],
        'df1_data3': ['342','111','235','NOTHING', 'NOTHING', 'NOTHING'],
        'df1_data4': ['325','542','523','NOTHING', 'NOTHING', 'NOTHING'],
        'df2_data1': ['1','NOTHING','NOTHING','4', '3', 'NOTHING'],
        'df2_data2': ['2','NOTHING','NOTHING','3', '2', 'NOTHING'],
        'df2_data3': ['3','NOTHING','NOTHING','2', '4', 'NOTHING'],
        'df2_data4': ['4','NOTHING','NOTHING','1', '1', 'NOTHING'],
        'df3_data1': ['NOTHING','NOTHING','NOTHING','2', '67', '4'],
        'df3_data2': ['NOTHING','NOTHING','NOTHING','73', '2', '7'],
        'df3_data3': ['NOTHING','NOTHING','NOTHING','2', '4', '5'],
        'df3_data4': ['NOTHING', 'NOTHING', 'NOTHING', '1', '0', '9']
        }

dataframe = pd.DataFrame(thisdict)

标签: pythonpandasdataframeloopssplit

解决方案


您可以将 Title 设置为索引并使用过滤器来获取列:

df = df.set_index('Title')
dfs = {'df%s' % i: df.filter(like='df%s' % i).reset_index()
       for i in range (1, 3+1)}

推荐阅读