Introduction
In this lesson, you'll delve deeper into the practical aspects of Pandas by exploring two of its most fundamental structures: DataFrames and Series. These constructs are pivotal for performing data manipulation and are integral to data analysis workflows. Building on your understanding from previous lessons, you'll learn how to create DataFrames and Series from different data structures, access and modify their contents, utilize index and label-based selection, and execute basic statistical operations. By mastering these skills, you'll enhance your data manipulation capabilities and be well-prepared for more advanced data engineering tasks.
DataFrames and Series in Pandas
Pandas DataFrames and Series are designed to facilitate data manipulation and are comparable to spreadsheets or SQL tables in their ability to organize data.
What is a Series?
A Series is a one-dimensional array-like object that can hold any data type. Each element in a Series is associated with an index, which acts as a label for each element.
Example: Creating a Pandas Series
import pandas as pd
# Creating a Series from a list
data = [1, 2, 3, 4, 5]
series = pd.Series(data)
print(series)
Example Output:
0 1
1 2
2 3
3 4
4 5
dtype: int64
What is a DataFrame?
A DataFrame is a two-dimensional, size-mutable, potentially heterogeneous tabular data structure. It is similar to a dictionary of Series objects.
Example: Creating a DataFrame from a dictionary
# Creating a DataFrame from a dictionary of lists
dictionary = {
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(dictionary)
print(df)
Example Output:
Name Age City
0 Alice 25 New York
1 Bob 30 Los Angeles
2 Charlie 35 Chicago
Accessing and Modifying DataFrame Columns
DataFrames allow easy column access and modification using column labels.
Accessing Columns
# Accessing a single column
df['Name']
# Accessing multiple columns
df[['Name', 'City']]
Example Output:
0 Alice
1 Bob
2 Charlie
Name: Name, dtype: object
For multiple columns:
Name City
0 Alice New York
1 Bob Los Angeles
2 Charlie Chicago
Modifying Columns
# Modifying a column
# Adding a new column
df['Salary'] = [70000, 80000, 90000]
print(df)
Example Output:
Name Age City Salary
0 Alice 25 New York 70000
1 Bob 30 Los Angeles 80000
2 Charlie 35 Chicago 90000
Understanding Index and Label-based Selection
Pandas provide versatile selection mechanisms: both index-based (iloc) and label-based (loc).
Index-based Selection: iloc
# Selecting rows using iloc
first_two_rows = df.iloc[0:2]
print(first_two_rows)
Example Output:
Name Age City Salary
0 Alice 25 New York 70000
1 Bob 30 Los Angeles 80000
Label-based Selection: loc
# Selecting rows using loc
charlie_data = df.loc[2]
print(charlie_data)
Example Output:
Name Charlie
Age 35
City Chicago
Salary 90000
Name: 2, dtype: object
Performing Basic Statistical Operations
Pandas Series offer straightforward ways to compute basic statistics, which aids in data analysis.
Example: Statistical Operations on a Series
# Calculating sum
total_age = df['Age'].sum()
print("Total Age:", total_age)
# Calculating mean
average_age = df['Age'].mean()
print("Average Age:", average_age)
Example Output:
Total Age: 90
Average Age: 30.0
Summary / Key Takeaways
In this lesson Understanding DataFrames and Series, you have learned:
- How to define DataFrames and Series, and their significance in data manipulation.
- Techniques to create DataFrames from various data structures like lists and dictionaries.
- Methods for accessing and modifying DataFrame columns through indexing and label selection.
- The Primary methods for index-based and label-based selection using
ilocandloc. - Performing elementary statistical calculations on a Series, emphasizing Pandas' power in data analysis.
By the end of this lesson, you should be confident in utilizing DataFrames and Series for effective data manipulation tasks in Pandas.
