Pandas Dataframe adding muliple empty row issue

Question:

I have test the code to add multiple empty row to Pandas DataFrame it worked.

import pandas as pd

df = pd.DataFrame({'name': ["James", "White", "John"],
                   'rebounds': [7, 7, 8]})

for i in range(100):
    dft =  df.columns.values.tolist()
    s = pd.Series(dft)
    df.loc[len(df)] =s
print(len(df.index))

In my application I have this code, its adding 16 empty rows but it adds only 4 rows.

    print(f"Before adding {len(df3.index)}")
    dft =  df3.columns.values.tolist()
    s = pd.Series(dft)
    for i in range(16):
        df3.loc[len(df3)] =s

    print(f"After adding {len(df3.index)}")

Output

Before adding 221
After adding 225

why its not adding 16 empty rows in my application code? How to troubleshoot this issue?

Thanks

Asked By: sfgroups

||

Answers:

You might have duplicated indices. For example if you array has 221 rows but an indice 222, no row will be added.

A more robust method could be to concat:

N = 4
df = pd.concat([df, pd.DataFrame(columns=df.columns,
                                 index=range(len(df), len(df)+N))
                ])

output:

    name rebounds
0  James        7
1  White        7
2   John        8
3    NaN      NaN
4    NaN      NaN
5    NaN      NaN
6    NaN      NaN
Answered By: mozway
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.