Home >Backend Development >Python Tutorial >How Can I Efficiently Append Multiple Rows to a Pandas DataFrame?
Appending Multiple Rows Efficiently to a Pandas DataFrame
When working with data, it's common to encounter situations where you need to incrementally append rows to an existing DataFrame. While the approach of setting values one field at a time using df._set_value() is viable, it can be inefficient for adding multiple rows.
Using df.loc[i] for Efficient Row Addition
A better and more concise way to add multiple rows is to use df.loc[i]. Here's how it works:
Import the necessary libraries:
import pandas as pd from numpy.random import randint
Create an empty DataFrame with your desired columns:
df = pd.DataFrame(columns=['lib', 'qty1', 'qty2'])
Iterate over the desired number of rows you want to add:
for i in range(5):
Inside the loop, use df.loc[i] to access the row with index i and assign the desired values for the lib, qty1, and qty2 columns. For example:
df.loc[i] = ['name' + str(i)] + list(randint(10, size=2))
Example:
Here's a complete example demonstrating how to use df.loc[i] to append five rows to our 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)) print(df)
Output:
lib qty1 qty2 0 name0 3 3 1 name1 2 4 2 name2 2 8 3 name3 2 1 4 name4 9 6
Using df.loc[i] offers a convenient and efficient way to add multiple rows to a DataFrame at once, without the need for multiple calls to df._set_value().
The above is the detailed content of How Can I Efficiently Append Multiple Rows to a Pandas DataFrame?. For more information, please follow other related articles on the PHP Chinese website!