Search code examples
pythonpandasdata-cleaningsklearn-pandas

How to make intervals of data after 6 rows using pandas


Hi I have a scenario where I have to maintain a number after every 6 six row.

For example here is my dataframe

client_id   patient_id  Total Clinic   Clinic Number  
    172         6021        1            Clinic 1
    172         6021        1            Clinic 1
    172         6021        1            Clinic 1
    172         6021        1            Clinic 1
    172         6021        1            Clinic 1
    172         6021        1            Clinic 1
    172         6137        1            Clinic 1
    172         6137        1            Clinic 1
    172         6137        1            Clinic 1
    172         6137        1            Clinic 1
    172         6137        1            Clinic 1
    172         6137        1            Clinic 1
    187         5658        5            Clinic 1
    187         5658        5            Clinic 1
    187         5658        5            Clinic 1
    187         5658        5            Clinic 1
    187         5658        5            Clinic 1
    187         5658        5            Clinic 1
    187         5658        5            Clinic 2
    187         5658        5            Clinic 2
    187         5658        5            Clinic 2
    187         5658        5            Clinic 2
    187         5658        5            Clinic 2
    187         5658        5            Clinic 2

I want to achieve below results so that after every six rows index count will be updated

client_id  patient_id  Total Clinic  Clinic Number  Index_Number            
    172        6021        1            Clinic 1            1
    172        6021        1            Clinic 1            1
    172        6021        1            Clinic 1            1
    172        6021        1            Clinic 1            1
    172        6021        1            Clinic 1            1
    172        6021        1            Clinic 1            1
    172        6137        1            Clinic 1            2
    172        6137        1            Clinic 1            2
    172        6137        1            Clinic 1            2
    172        6137        1            Clinic 1            2
    172        6137        1            Clinic 1            2
    172        6137        1            Clinic 1            2
    187        5658        5            Clinic 1            3
    187        5658        5            Clinic 1            3
    187        5658        5            Clinic 1            3
    187        5658        5            Clinic 1            3
    187        5658        5            Clinic 1            3
    187        5658        5            Clinic 1            3
    187        5658        5            Clinic 2            4
    187        5658        5            Clinic 2            4
    187        5658        5            Clinic 2            4
    187        5658        5            Clinic 2            4
    187        5658        5            Clinic 2            4
    187        5658        5            Clinic 2            4

Need Help Thanks.


Solution

  • This is kinda hacky, but it works. Maybe there's a more straightforward way to do it.

    df['Index_Number'] = np.repeat(np.arange(df.shape[0]/6), 6)[:df.shape[0]]+1