Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Selected Reading
How to extract the value names and counts from value_counts() in Pandas?
The value_counts() method in Pandas returns a Series with unique values and their frequencies. To extract the value names and counts separately, you can use the index and values attributes of the resulting Series.
Creating a DataFrame
First, let's create a sample DataFrame with car data ?
import pandas as pd
# Creating dataframe
dataFrame = pd.DataFrame({
"Car": ['BMW', 'Mustang', 'Tesla', 'Mustang', 'Mercedes', 'Tesla', 'Audi'],
"Cubic Capacity": [2000, 1800, 1500, 2500, 2200, 3000, 2000],
"Reg Price": [7000, 1500, 5000, 8000, 9000, 6000, 1500],
"Units Sold": [200, 120, 150, 120, 210, 250, 220]
})
print("DataFrame:")
print(dataFrame)
DataFrame:
Car Cubic Capacity Reg Price Units Sold
0 BMW 2000 7000 200
1 Mustang 1800 1500 120
2 Tesla 1500 5000 150
3 Mustang 2500 8000 120
4 Mercedes 2200 9000 210
5 Tesla 3000 6000 250
6 Audi 2000 1500 220
Getting Value Counts for Car Column
Let's get the value counts for the Car column and extract names and counts separately ?
import pandas as pd
dataFrame = pd.DataFrame({
"Car": ['BMW', 'Mustang', 'Tesla', 'Mustang', 'Mercedes', 'Tesla', 'Audi'],
"Cubic Capacity": [2000, 1800, 1500, 2500, 2200, 3000, 2000],
"Reg Price": [7000, 1500, 5000, 8000, 9000, 6000, 1500],
"Units Sold": [200, 120, 150, 120, 210, 250, 220]
})
# Get value counts for Car column
car_counts = dataFrame['Car'].value_counts()
print("Car value counts:")
print(car_counts)
# Extract value names (index)
car_names = car_counts.index.tolist()
print("\nCar names:", car_names)
# Extract counts (values)
counts = car_counts.values.tolist()
print("Counts:", counts)
Car value counts: Mustang 2 Tesla 2 Audi 1 BMW 1 Mercedes 1 Name: Car, dtype: int64 Car names: ['Mustang', 'Tesla', 'Audi', 'BMW', 'Mercedes'] Counts: [2, 2, 1, 1, 1]
Getting Value Counts for Numeric Column
The same approach works for numeric columns like Units Sold ?
import pandas as pd
dataFrame = pd.DataFrame({
"Car": ['BMW', 'Mustang', 'Tesla', 'Mustang', 'Mercedes', 'Tesla', 'Audi'],
"Cubic Capacity": [2000, 1800, 1500, 2500, 2200, 3000, 2000],
"Reg Price": [7000, 1500, 5000, 8000, 9000, 6000, 1500],
"Units Sold": [200, 120, 150, 120, 210, 250, 220]
})
# Get value counts for Units Sold column
units_counts = dataFrame['Units Sold'].value_counts()
print("Units Sold value counts:")
print(units_counts)
# Extract unique values and their counts
unique_units = units_counts.index.tolist()
unit_counts = units_counts.values.tolist()
print("\nUnique units sold:", unique_units)
print("Frequency of each:", unit_counts)
Units Sold value counts: 120 2 150 1 220 1 210 1 250 1 200 1 Name: Units Sold, dtype: int64 Unique units sold: [120, 150, 220, 210, 250, 200] Frequency of each: [2, 1, 1, 1, 1, 1]
Creating a Summary Dictionary
You can combine the names and counts into a dictionary for easier manipulation ?
import pandas as pd
dataFrame = pd.DataFrame({
"Car": ['BMW', 'Mustang', 'Tesla', 'Mustang', 'Mercedes', 'Tesla', 'Audi'],
"Cubic Capacity": [2000, 1800, 1500, 2500, 2200, 3000, 2000],
"Reg Price": [7000, 1500, 5000, 8000, 9000, 6000, 1500],
"Units Sold": [200, 120, 150, 120, 210, 250, 220]
})
# Get value counts for Car column
car_counts = dataFrame['Car'].value_counts()
# Convert to dictionary
car_dict = car_counts.to_dict()
print("Car counts as dictionary:")
print(car_dict)
# Or create a list of tuples
car_tuples = list(zip(car_counts.index, car_counts.values))
print("\nCar counts as list of tuples:")
print(car_tuples)
Car counts as dictionary:
{'Mustang': 2, 'Tesla': 2, 'Audi': 1, 'BMW': 1, 'Mercedes': 1}
Car counts as list of tuples:
[('Mustang', 2), ('Tesla', 2), ('Audi', 1), ('BMW', 1), ('Mercedes', 1)]
Conclusion
Use .index to extract value names and .values to extract counts from a value_counts() Series. Convert to dictionary with .to_dict() for easier data manipulation and analysis.
Advertisements
