A Series is a simple way to store data with labels. Creating a Series from lists or dictionaries helps organize data so you can analyze it easily.
Series creation from lists and dicts in Data Analysis Python
import pandas as pd # Create Series from a list data_list = [10, 20, 30] series_from_list = pd.Series(data_list, index=['a', 'b', 'c']) # Create Series from a dictionary data_dict = {'a': 10, 'b': 20, 'c': 30} series_from_dict = pd.Series(data_dict)
The index parameter is optional when creating from a list. If not given, default labels 0, 1, 2... are used.
When creating from a dictionary, the keys become the labels automatically.
import pandas as pd # Empty list empty_list = [] series_empty = pd.Series(empty_list) print(series_empty)
import pandas as pd # List with one element single_element_list = [42] series_single = pd.Series(single_element_list, index=['only']) print(series_single)
import pandas as pd # Dictionary with one key-value pair dict_single = {'x': 99} series_single_dict = pd.Series(dict_single) print(series_single_dict)
import pandas as pd # List without index data_list = [5, 10, 15] series_default_index = pd.Series(data_list) print(series_default_index)
This program shows how to create Series from a list with custom labels and from a dictionary. It prints both Series so you can see the labels and values.
import pandas as pd # Create Series from list with labels numbers_list = [100, 200, 300] labels_list = ['first', 'second', 'third'] series_from_list = pd.Series(numbers_list, index=labels_list) print('Series from list:') print(series_from_list) # Create Series from dictionary dict_data = {'apple': 5, 'banana': 3, 'cherry': 7} series_from_dict = pd.Series(dict_data) print('\nSeries from dictionary:') print(series_from_dict)
Creating a Series from a list or dictionary is very fast, with time complexity O(n) where n is the number of elements.
Space complexity is O(n) because the Series stores all elements and their labels.
A common mistake is forgetting to provide an index when creating from a list, which results in default numeric labels that might not be meaningful.
Use dictionary input when your data already has meaningful labels. Use list input when you want to assign labels yourself or use default numeric labels.
A Series stores data with labels for easy access and analysis.
You can create a Series from a list by optionally giving labels with the index parameter.
Creating a Series from a dictionary automatically uses the dictionary keys as labels.
Practice
Solution
Step 1: Understand what a Series is
A Series is like a list but with labels for each element.Step 2: Identify what is stored besides data
Besides the data values, a Series stores labels called an index.Final Answer:
Labels (index) for each data element -> Option BQuick Check:
Series stores data + labels [OK]
- Thinking Series stores multiple columns like DataFrame
- Assuming Series only stores numeric data
- Believing Series has no labels
[10, 20, 30] with labels ['a', 'b', 'c']?Solution
Step 1: Recall Series creation syntax from list
Use pd.Series(data_list, index=labels_list) to assign labels.Step 2: Check each option
pd.Series([10, 20, 30], index=['a', 'b', 'c']) uses correct syntax: data first, then index labels. Others misuse parameters or use wrong keywords.Final Answer:
pd.Series([10, 20, 30], index=['a', 'b', 'c']) -> Option DQuick Check:
Correct syntax uses index= for labels [OK]
- Using labels= instead of index=
- Swapping data and index parameters
- Passing dict instead of list for this question
import pandas as pd
s = pd.Series({'x': 5, 'y': 10, 'z': 15})
print(s['y'])Solution
Step 1: Understand Series creation from dict
Keys become labels, values become data. So 'y' label has value 10.Step 2: Access value by label 'y'
Using s['y'] returns the value 10 stored at label 'y'.Final Answer:
10 -> Option AQuick Check:
Dict keys = labels, s['y'] = 10 [OK]
- Expecting s['y'] to return the label 'y'
- Confusing keys and values
- Thinking it raises KeyError
import pandas as pd s = pd.Series([1, 2, 3], index=['a', 'b'])
Solution
Step 1: Check lengths of data and index
Data has 3 elements, index has 2 labels. They must be equal length.Step 2: Understand pandas behavior
Mismatch causes ValueError: Length of passed values does not match index.Final Answer:
Index length does not match data length -> Option CQuick Check:
Data and index lengths must match [OK]
- Assuming list data must be dict
- Thinking index parameter is invalid
- Ignoring length mismatch error
{'a': 1, 'b': 0, 'c': 3, 'd': None}. You want to create a Series that only includes keys with truthy values (non-zero, non-None). Which code correctly creates this filtered Series?Solution
Step 1: Understand filtering for truthy values
Truthy means values that are not 0, None, False, or empty.Step 2: Check each option's effect
pd.Series({k: v for k, v in {'a':1, 'b':0, 'c':3, 'd':None}.items() if v}) uses dict comprehension to filter out falsy values before creating Series. pd.Series({'a':1, 'b':0, 'c':3, 'd':None}).dropna() only drops None but keeps 0. pd.Series({'a':1, 'b':0, 'c':3, 'd':None}).fillna(0) replaces None with 0, keeping falsy values. pd.Series({'a':1, 'b':0, 'c':3, 'd':None}) includes all values.Final Answer:
pd.Series({k: v for k, v in {'a':1, 'b':0, 'c':3, 'd':None}.items() if v}) -> Option AQuick Check:
Filter dict first to exclude falsy values [OK]
- Using dropna() only removes None, not 0
- Filling None with 0 keeps falsy values
- Not filtering before creating Series
Ready to prove it?
Pass the test and this pattern moves unknown
