Modifying Data in Pandas
Last Updated: 29th August 2025
What you'll learn
- How to change values in a DataFrame or Series
- How to replace values in a DataFrame or Series
- How to add or remove rows or columns
- Type casting in pandas
- Rename columns,index etc
Let Data is like this
import pandas as pd
df = pd.DataFrame({
"Name": ["Amit", "Ravi", "Neha"],
"Age": [25, 30, 22],
"Marks": [85, 90, 95]
})
Modifying DataFrame
1. Change a Single Value
# Change one value using loc
df.loc[0, "Age"] = 26 # Amit's Age becomes 26
# Change one value using iloc
df.iloc[1, 2] = 92 # Ravi's Marks become 92
print(df)
2. Change Multiple Values
# Change multiple rows/columns
df.loc[0:1, "Marks"] = [88, 93] # Amit=88, Ravi=93
print(df)
3. Replace values
# Old Method
df["Age"].replace({25: 26, 30: 31}, inplace=True) # Replace 25 with 26 and 30 with 31
print(df)
# New Method
df.replace({"Age": {25: 26, 30: 31}}, inplace=True) # Replace 25 with 26 and 30 with 31
print(df)
4. Update Column with condition
# Increase marks by 5 where Age > 25
df.loc[df["Age"] > 25, "Marks"] += 5
print(df)
5. Update Entire Column
# Increase all ages by 1
df["Age"] = df["Age"] + 1
print(df)
Adding / Removing columns & rows
1. Adding a new column
# Add new column "Address"
df["Address"] = ["Kashi", "Delhi", "Lucknow"]
print(df)
2. Add column with same value
df["Country"] = "India" # All rows get India
print(df)
3. Adding Rows
# Add Single Row
new_row = {"Name": "Kiran", "Age": 28, "Marks": 88, "Country": "India","Address": "Noida"}
df = df._append(new_row, ignore_index=True) # _append in latest Pandas
print(df)
# Add Multiple Rows
new_rows = [
{"Name": "Sita", "Age": 24, "Marks": 91, "Country": "India","Address": "Delhi"},
{"Name": "Sadhu", "Age": 2, "Marks": 0, "Country": "India","Address": "Kashi"}
]
df = df._append(new_rows, ignore_index=True)
print(df)
4. Removing Columns
# Remove one column
df = df.drop("Country", axis=1)
# Remove multiple columns
df = df.drop(["Age", "Marks"], axis=1)
print(df)
5. Removing Rows
# Remove row by index (By default axis=0)
df = df.drop(1, axis=0) # removes 2nd row (Ravi)
# Remove multiple rows
df = df.drop([0, 2], axis=0)
print(df)
Type Casting in Pandas
1.Converting Data Types with astype()
# Change data type of a column
df["Marks"] = df["Marks"].astype("int16")
print(df)
print(df.dtypes)
2. Categorical Data
# Convert a column to categorical
df["Country"] = df["Country"].astype("category")
print(df)
print(df.dtypes)
Rename and Reindex
1. Rename columns
# Rename single column
df = df.rename(columns={"Marks": "Score"})
# Rename multiple columns
df = df.rename(columns={"Age": "Years", "Name": "Student_Name"})
2. Rename index
# Rename index
df = df.rename(index={0: "A", 1: "B", 2: "C"})
3. Indexing
# Set index
df = df.set_index("Name")
print(df)
# Reset index
df = df.reset_index()
print(df)