如何将一个数据帧拆分为两个数据帧

2024-05-19 21:38:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个如下所示的数据框。我想将此数据帧拆分为两个数据帧,因为它们是不同的报告。我要在“断开”索引上拆分

                                            Fri      Sat      Sun      Mon      Tue
Metric Group    Metric Type
Productive Time % Available                 82.7%     88.9%   85.0%   82.8%    65.2%   
Labor Move      % Hours Lost                72.6%     70.9%   84.0%   49.0%    75.4%  
Break           % Failed Break              85.0%     50.5%   25.0%   72.9%    65.0%  
Productive Time % Available                 52.8%     90.9%   65.0%   56.9%    45.2%        
Labor Move      % Hours Lost                62.5%     80.9%   55.0%   65.9%    95.7%  
Break           % Failed Break              83.7%     85.9%   95.0%   71.9%    45.5%  

输出应该类似。是否有可能实现这种类型的输出。任何帮助都将不胜感激

df1 =                                              Fri      Sat      Sun      Mon      Tue
       Metric Group    Metric Type
       Productive Time % Available                 82.7%     88.9%   85.0%   82.8%    65.2%   
       Labor Move      % Hours Lost                72.6%     70.9%   84.0%   49.0%    75.4%  
       Break           % Failed Break              85.0%     50.5%   25.0%   72.9%    65.0%

df2= 

     Productive Time % Available                 52.8%     90.9%   65.0%   56.9%    45.2%        
     Labor Move      % Hours Lost                62.5%     80.9%   55.0%   65.9%    95.7%  
     Break           % Failed Break              83.7%     85.9%   95.0%   71.9%    45.5%   

Tags: 数据movetimemetricsatavailablesunlost
3条回答

执行df.index.get_loc('splitword')以获取分割字的索引位置

splitindex=df.index.get_loc('Break')

然后执行切片:

df1=df.iloc[:(splitindex+1)]

df2=df.iloc[(splitindex+1):]

您可以通过对索引使用cumcount来创建条件列

这将统计我们将用于创建密钥的每个唯一变量

dfs = {g : data for g,data in df.groupby(df.groupby(level=0).cumcount())}

print(dfs)

{0:                                            Fri    Sat    Sun    Mon    Tue
 Metric Group      Metric Type                                             
 Productive Time %  Available             82.7%  88.9%  85.0%  82.8%  65.2%
 Labor Move      %  Hours Lost            72.6%  70.9%  84.0%  49.0%  75.4%
 Break           %  Failed Break          85.0%  50.5%  25.0%  72.9%  65.0%,
 1:                                            Fri    Sat    Sun    Mon    Tue
 Metric Group      Metric Type                                             
 Productive Time %  Available             52.8%  90.9%  65.0%  56.9%  45.2%
 Labor Move      %  Hours Lost            62.5%  80.9%  55.0%  65.9%  95.7%
 Break           %  Failed Break          83.7%  85.9%  95.0%  71.9%  45.5%}

print(dfs[0])

                                           Fri    Sat    Sun    Mon    Tue
Metric Group      Metric Type                                             
Productive Time %  Available             82.7%  88.9%  85.0%  82.8%  65.2%
Labor Move      %  Hours Lost            72.6%  70.9%  84.0%  49.0%  75.4%
Break           %  Failed Break          85.0%  50.5%  25.0%  72.9%  65.0%

您是否尝试过:

df1 = df.iloc(:2,:)
df2 = df.iloc(2:,:)

?

相关问题 更多 >