【问题标题】:Creating multiple dataframes (2) based off value in one column and stop when another value is observed根据一列中的值创建多个数据框 (2),并在观察到另一个值时停止
【发布时间】:2019-07-17 21:57:33
【问题描述】:

数据框结构如下所示:

Date   Amount1     Amount2     Amount3

NaN     Port        NaN        thing1
1/1/17     2         3           3
2/1/17     2         3           3  
2/1/17     2         3           3  
4/1/17     2         3           3  
5/1/17     2         3           3  
6/1/17     2         3           3  
7/1/17     2         3           3  
8/1/17     2         3           3 
9/1/17     2         3           3
10/1/17    2         3           3
11/1/17    2         3           3 
12/1/17    2         3           3      
NaN     Port        NaN        thing2
1/1/17     2         3           3
2/1/17     2         3           3  
2/1/17     2         3           3  
4/1/17     2         3           3  
5/1/17     2         3           3  
6/1/17     2         3           3  
7/1/17     2         3           3  
8/1/17     2         3           3 
9/1/17     2         3           3
10/1/17    2         3           3
11/1/17    2         3           3 
12/1/17    2         3           3  
Total     Nan        NaN        NaN
1/1/17     2         3           3
2/1/17     2         3           3  
2/1/17     2         3           3  
4/1/17     2         3           3  
5/1/17     2         3           3  
6/1/17     2         3           3  
7/1/17     2         3           3  
8/1/17     2         3           3 
9/1/17     2         3           3
10/1/17    2         3           3
11/1/17    2         3           3 
12/1/17    2         3           3  
NaN        Nan       Nan         Nan

我有兴趣创建 2 个数据框。

1.一个数据框收集在amount3列中观察到thing2之后的行,并在date列中观察到total之前停止该行。

2.第二个数据帧将在观察到总计后的行上开始,并在观察到 NaN(空)值时停止。

【问题讨论】:

    标签: python pandas function dataframe subset


    【解决方案1】:

    您可以使用idxmax.iloc

    df1=df.loc[df.Amount3.eq('thing2').idxmax():df.Date.eq('Total').idxmax()-1].copy()
    df2=df.loc[df.Date.eq('Total').idxmax():]
    df2=df2.loc[:df2.Date.isnull().idxmax()-1]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-18
      • 1970-01-01
      • 1970-01-01
      • 2023-01-04
      • 1970-01-01
      • 2020-10-18
      • 1970-01-01
      • 2022-11-23
      相关资源
      最近更新 更多