Introduction
In this tutorial, we'll explore how to work with electric vehicle (EV) data and performance metrics using Python. Based on the recent Porsche Cayenne Coupe Electric announcement, we'll create a practical analysis tool that can process and visualize EV specifications like horsepower, acceleration times, and charging capabilities. This tutorial will teach you how to structure EV data, perform calculations, and create meaningful visualizations to compare different electric vehicle models.
Prerequisites
- Python 3.7 or higher installed
- Basic understanding of Python programming concepts
- Installed libraries: pandas, matplotlib, seaborn
To install the required libraries, run:
pip install pandas matplotlib seaborn
Step-by-Step Instructions
1. Create the EV Data Structure
First, we'll create a data structure to represent EV specifications. This will help us organize and analyze the performance metrics mentioned in the Porsche announcement.
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# Create a sample EV dataset
ev_data = {
'model': ['Porsche Cayenne Coupe Electric', 'Tesla Model S Plaid', 'BMW iX xDrive50', 'Mercedes EQC 400'],
'horsepower': [1139, 1020, 616, 408],
'zero_to_sixty_mph': [2.4, 1.99, 4.2, 5.1],
'wltp_range_km': [669, 615, 500, 450],
'charging_time_minutes': [16, 18, 20, 25],
'price_usd': [113800, 129900, 84900, 65900]
}
ev_df = pd.DataFrame(ev_data)
print(ev_df)
Why this step? This creates a structured dataset that mirrors real EV specifications. Understanding how to organize data is crucial for any analysis work.
2. Calculate Performance Ratios
Next, we'll calculate some key performance ratios to better understand the efficiency of each vehicle.
# Add calculated performance metrics
ev_df['hp_per_mile'] = ev_df['horsepower'] / ev_df['wltp_range_km']
ev_df['acceleration_efficiency'] = ev_df['zero_to_sixty_mph'] / ev_df['horsepower']
ev_df['charging_efficiency'] = ev_df['charging_time_minutes'] / ev_df['wltp_range_km']
print(ev_df)
Why this step? These ratios help us understand the relationship between power, range, and charging efficiency, giving us a more comprehensive view of vehicle performance.
3. Visualize Horsepower vs. Range
Now we'll create a scatter plot to visualize the relationship between horsepower and range for different EV models.
# Set up the plotting style
plt.figure(figsize=(10, 6))
sns.scatterplot(data=ev_df, x='wltp_range_km', y='horsepower', size='price_usd', hue='model', sizes=(200, 1000))
plt.title('EV Performance: Horsepower vs. Range')
plt.xlabel('WLTP Range (km)')
plt.ylabel('Horsepower')
plt.legend(bbox_to_anchor=(1.05, 1), loc='upper left')
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.show()
Why this step? Visualizing these relationships helps identify trends and outliers in EV performance metrics, which is essential for understanding market positioning.
4. Create Acceleration Efficiency Chart
Let's analyze how acceleration efficiency varies across different EV models.
# Create a bar chart for acceleration efficiency
plt.figure(figsize=(10, 6))
sns.barplot(data=ev_df, x='model', y='acceleration_efficiency')
plt.title('Acceleration Efficiency (seconds per horsepower)')
plt.xlabel('EV Model')
plt.ylabel('Time per Horsepower')
plt.xticks(rotation=45)
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.show()
Why this step? This visualization shows how efficiently each vehicle converts horsepower into acceleration, which is particularly relevant for the Porsche's 2.4-second 0-60 mph time.
5. Analyze Charging Capabilities
Let's examine the charging performance and create a comprehensive comparison chart.
# Create a multi-panel chart
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 6))
# Charging time vs range
sns.scatterplot(data=ev_df, x='wltp_range_km', y='charging_time_minutes', hue='model', ax=ax1)
ax1.set_title('Charging Time vs Range')
ax1.set_xlabel('WLTP Range (km)')
ax1.set_ylabel('Charging Time (minutes)')
# Price vs range
sns.scatterplot(data=ev_df, x='wltp_range_km', y='price_usd', hue='model', ax=ax2)
ax2.set_title('Price vs Range')
ax2.set_xlabel('WLTP Range (km)')
ax2.set_ylabel('Price (USD)')
plt.tight_layout()
plt.show()
Why this step? This comparison helps understand the trade-offs between price, range, and charging speed - key factors for consumers considering EV purchases.
6. Calculate and Display Key Metrics
Finally, let's calculate some summary statistics and present them in an organized manner.
# Calculate summary statistics
summary_stats = ev_df[['horsepower', 'zero_to_sixty_mph', 'wltp_range_km', 'charging_time_minutes', 'price_usd']].describe()
print("Summary Statistics:")
print(summary_stats)
# Find the best performing models
best_horsepower = ev_df.loc[ev_df['horsepower'].idxmax()]
best_range = ev_df.loc[ev_df['wltp_range_km'].idxmax()]
best_acceleration = ev_df.loc[ev_df['zero_to_sixty_mph'].idxmin()]
print("\nBest Performing Models:")
print(f"Highest Horsepower: {best_horsepower['model']} ({best_horsepower['horsepower']} hp)")
print(f"Longest Range: {best_range['model']} ({best_range['wltp_range_km']} km)")
print(f"Fastest Acceleration: {best_acceleration['model']} ({best_acceleration['zero_to_sixty_mph']} seconds)")
Why this step? This final analysis provides clear insights into which vehicles excel in different performance categories, helping understand the competitive landscape of electric vehicles.
Summary
In this tutorial, we've created a comprehensive EV analysis tool that processes and visualizes performance metrics for electric vehicles. We've learned how to structure EV data, calculate performance ratios, and create meaningful visualizations to compare different models. The Porsche Cayenne Coupe Electric's impressive 1,139 horsepower and 2.4-second 0-60 mph acceleration were used as a reference point in our analysis, demonstrating how to work with real-world EV specifications. This approach can be extended to analyze any EV dataset and provides valuable insights for both automotive enthusiasts and industry professionals.



