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.

Updated on: 2026-03-26T13:31:15+05:30

478 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements