Python: Updating and Appending pandas DataFrame using Dictionary

Luca Liu - Mar 4 - - Dev Community

Updating a Pandas DataFrame Using a Dictionary

As a data analyst, it's common to work extensively with DataFrames, the cornerstone of data manipulation. Updating or appending data using dictionaries is a frequent task in this domain. In this article, we'll explore efficient methods for these operations, including updating specific columns or rows using dictionary, updating specific values on conditions, and appending new rows.

1. Updating Specific Columns

You can update specific columns of a DataFrame by providing column names as keys and corresponding values as values in the dictionary. Here's an example:



import pandas as pd

# Create a DataFrame
data = {'A': [1, 2, 3],
        'B': [4, 5, 6]}
df = pd.DataFrame(data)

# Dictionary to update values
update_dict = {'A': [10, 20, 30]}

# Update DataFrame using the dictionary
df.update(pd.DataFrame(update_dict))

print(df)


Enter fullscreen mode Exit fullscreen mode

Output:



    A  B
0  10  4
1  20  5
2  30  6


Enter fullscreen mode Exit fullscreen mode

2. Updating Specific Rows

You can also update specific rows of a DataFrame using dictionaries. In this case, keys represent the indices of rows to update, and values are dictionaries containing column names and new values. Here's an example:



# Dictionary to update values for specific rows
update_dict_rows = {1: {'A': 50, 'B': 60}}

# Update DataFrame using the dictionary
for idx, values in update_dict_rows.items():
    df.loc[idx] = values

print(df)


Enter fullscreen mode Exit fullscreen mode

Output:




    A   B
0  10   4
1  50  60
2  30   6


Enter fullscreen mode Exit fullscreen mode

3. Updating Column B Based on a Condition in Column A

You can update values in column B based on a specific condition in column A using boolean indexing. This method allows you to selectively update values in one column based on the values or conditions in another column. Here's how you can achieve this:



import pandas as pd

# Create a DataFrame
data = {'A': [1, 2, 3],
        'B': [4, 5, 6]}
df = pd.DataFrame(data)

# Update values in column B where column A meets a specific condition
condition = df['A'] > 1  # Example condition: Update where A is greater than 1
df.loc[condition, 'B'] = 10  # Update values in column B where the condition is True

print(df)


Enter fullscreen mode Exit fullscreen mode

Output:



   A  B
0  1  4
1  2  10
2  3  10


Enter fullscreen mode Exit fullscreen mode

4. Appending a New Row to the DataFrame

You can add a new row to a DataFrame using various methods in Pandas. One common approach is to use the concat() function or the loc property. Here, we'll explore how to append a new row using the loc property along with a list comprehension.



import pandas as pd

# Create a DataFrame
data = {'A': [1, 2, 3],
        'B': [4, 5, 6]}
df = pd.DataFrame(data)

# Dictionary representing the new row
new_row = {'A': 4, 'B': 7}

# Convert the dictionary to a DataFrame and then concatenate it with the original DataFrame
new_df = pd.DataFrame([new_row])
df = pd.concat([df, new_df], ignore_index=True)

print(df)


Enter fullscreen mode Exit fullscreen mode


import pandas as pd

# Create a DataFrame
data = {'A': [1, 2, 3],
        'B': [4, 5, 6]}
df = pd.DataFrame(data)

# Dictionary representing the new row
new_row = {'A': 4, 'B': 7}

# Append the new row to the DataFrame using loc
df.loc[len(df)] = new_row

print(df)


Enter fullscreen mode Exit fullscreen mode

Output:



   A  B
0  1  4
1  2  5
2  3  6
3  4  7


Enter fullscreen mode Exit fullscreen mode

Conclusion

Mastering Pandas' methods for updating and appending data using dictionaries enables streamlined data manipulation workflows. With techniques ranging from conditional updates to appending new rows, users gain precise control over their data, facilitating insightful analysis and streamlined data processing. As a foundational skill in data science, proficiency in Pandas empowers practitioners to extract maximum value from their datasets with ease and efficiency.


Explore more

Thank you for taking the time to explore data-related insights with me. I appreciate your engagement.

🚀 Connect with me on LinkedIn

🎃 Connect with me on X

🌍 Connect with me on Instagram

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .