pythonpandasdataframeappend

Create a Pandas Dataframe by appending one row at a time


How do I create an empty DataFrame, then add rows, one by one?

I created an empty DataFrame:

df = pd.DataFrame(columns=('lib', 'qty1', 'qty2'))

Then I can add a new row at the end and fill a single field with:

df = df._set_value(index=len(df), col='qty1', value=10.0)

It works for only one field at a time. What is a better way to add new row to df?


Solution

  • You can use df.loc[i], where the row with index i will be what you specify it to be in the dataframe.

    >>> import pandas as pd
    >>> from numpy.random import randint
    
    >>> df = pd.DataFrame(columns=['lib', 'qty1', 'qty2'])
    >>> for i in range(5):
    >>>     df.loc[i] = ['name' + str(i)] + list(randint(10, size=2))
    
    >>> df
         lib qty1 qty2
    0  name0    3    3
    1  name1    2    4
    2  name2    2    8
    3  name3    2    1
    4  name4    9    6