Tickets2Moontown
Tickets2Moontown

Reputation: 137

Insert 2 Blank Rows In DF by Group

I basically want the solution from this question to be applied to 2 blank rows.

Insert Blank Row In Python Data frame when value in column changes?

I've messed around with the solution but don't understand the code enough to alter it correctly.

Upvotes: 0

Views: 316

Answers (1)

SomeDude
SomeDude

Reputation: 14238

You can do:

num_empty_rows = 2
df = (df.groupby('Col1',as_index=False).apply(lambda g: g.append(
             pd.DataFrame(data=[['']*len(df.columns)]*num_empty_rows,
                       columns=df.columns))).reset_index(drop=True).iloc[:-num_empty_rows])

As you can see, after each group df is appended by a dataframe to accommodate num_empty_rows and then at the end reset_index is performed. The last iloc[:-num_empty_rows] is optional i.e. to remove empty rows at the end.

Example input:

df = pd.DataFrame({'Col1': ['A', 'A', 'A', 'B', 'C'],
              'Col2':['s','s','b','b','l'],
              'Col3':['b','j','d','a','k'],
              'Col4':['d','k','q','d','p']
             })

Output:

    Col1    Col2    Col3    Col4
0      A       s       b       d
1      A       s       j       k
2      A       b       d       q
3               
4               
5      B       b       a       d
6               
7               
8      C       l       k       p

Upvotes: 1

Related Questions