Download Notebook (.ipynb)
Pandas Basics: Core Objects & Common Operations
Purpose: Demonstrate the basic usage of Pandas Series and DataFrame, including creation, indexing, and CRUD operations. Outputs:
- Basic Series and DataFrame examples
- Indexing examples
- CSV read/write demo
import pandas as pd
import numpy as np
import os
# Ensure we are in a clean state
print(f"Pandas version: {pd.__version__}")# 1. Series Creation
# From list
s1 = pd.Series([10, 20, 30, 40])
print("s1 (default index):")
print(s1)
# From list with index
s2 = pd.Series([100, 98, 67, 23], index=['zs', 'ls', 'ww', 'sl'])
print("\ns2 (custom index):")
print(s2)
# From dict
d = {'zs': 100, 'ls': 98, 'ww': 67, 'sl': 23}
s3 = pd.Series(d)
print("\ns3 (from dict):")
print(s3)# 2. DataFrame Creation
# From dict of lists
data = {
'Name': ['Tom', 'Jerry', 'Jack', 'Rose'],
'Age': [18, 18, 20, 20]
}
df = pd.DataFrame(data)
print("DataFrame from dict:")
print(df)
# From dict of Series (alignment)
data2 = {
'Name': pd.Series(['Tom', 'Jerry', 'Jack', 'Rose'], index=['a', 'b', 'c', 'd']),
'Age': pd.Series([18, 18, 20], index=['a', 'b', 'c']),
'Gender': pd.Series(['M', 'M', 'F'], index=['a', 'c', 'd'])
}
df2 = pd.DataFrame(data2)
print("\nDataFrame with alignment (df2):")
print(df2)# 3. Indexing (loc vs iloc)
print("Original df2:")
print(df2)
print("\n--- loc (label based) ---")
print("df2.loc['a']:")
print(df2.loc['a'])
print("\n--- iloc (position based) ---")
print("df2.iloc[0]:")
print(df2.iloc[0])
print("\n--- Slicing ---")
print("df2.loc['a':'c', ['Name', 'Age']]:")
print(df2.loc['a':'c', ['Name', 'Age']])# 4. Column CRUD
df = df2.copy()
# Add column
df['Math'] = 100
print("Added Math column:")
print(df)
# Modify column
df['Math'] = [90, 95, 85, 88] # Modify with list
print("\nModified Math column:")
print(df)
# Delete column
df.drop(['Math'], axis=1, inplace=True)
print("\nDropped Math column:")
print(df)# 5. CSV I/O
# Create a dummy CSV
df2.to_csv('demo_pandas.csv')
print("Saved demo_pandas.csv")
# Read it back
df_read = pd.read_csv('demo_pandas.csv', index_col=0)
print("\nRead back from CSV:")
print(df_read)
# Clean up
if os.path.exists('demo_pandas.csv'):
os.remove('demo_pandas.csv')
print("\nCleaned up demo_pandas.csv")