Pandas
keyboard_arrow_down 655 guides
chevron_leftData Manipulation Cookbook
Adding a prefix to column valuesAdding leading zeros to strings of a columnAdding new column using listsAdding padding to a column of stringsBit-wise ORChanging column type to stringConditionally updating values of a DataFrameConverting all object-typed columns to categorical typeConverting column type to dateConverting column type to floatConverting column type to integerConverting K and M to numerical formConverting string categories or labels to numeric valuesEncoding categorical variablesExpanding lists vertically in a DataFrameExpanding strings vertically in a DataFrameExtracting numbers from columnFilling missing value in Index of DataFrameFiltering column values using boolean masksLogical AND operationMaking DataFrame string column lowercaseMapping True and False to 1 and 0 respectivelyMapping values of a DataFrame using a dictionaryModifying a single value in a DataFrameRemoving characters from columnsRemoving comma from column valuesRemoving first n characters from column valuesRemoving last n characters from column valuesRemoving leading substringRemoving trailing substringReplacing infinities with another value in DataFrameReplacing values in a DataFrameRounding valuesSorting categorical columnsUsing previous row to create new columns
check_circle
Mark as learned thumb_up
0
thumb_down
0
chat_bubble_outline
0
Comment auto_stories Bi-column layout
settings
Expanding lists vertically in a DataFrame in Pandas
schedule Aug 12, 2023
Last updated local_offer
Tags Python●Pandas
tocTable of Contents
expand_more Master the mathematics behind data science with 100+ top-tier guides
Start your free 7-days trial now!
Start your free 7-days trial now!
To expand lists vertically in a Pandas DataFrame, use the DataFrame's explode(~)
method.
Example
Consider the following DataFrame:
df = pd.DataFrame({"A":[["a","b"], [],"c"],"B":[4,5,6]})df
A B0 [a,b] 41 [] 52 c 6
To vertically expand the lists so that each item in the lists get their own row:
df.explode("A")
A B0 a 40 b 41 NaN 52 c 6
Note the following:
the index
0
was duplicated since its list contains two values (["a","b"]
)the
[]
list was converted intoNaN
.
If you want non-duplicate index values, call reset_index(~)
, which will reset the index to the default integer index:
df.explode("A").reset_index(drop=True)
A B0 a 41 b 42 NaN 53 c 6
Here, the drop=True
is needed - otherwise the current index will be appended as a column.
Published by Isshin Inada
Edited by 0 others
Did you find this page useful?
thumb_up
thumb_down
Comment
Citation
Ask a question or leave a feedback...
thumb_up
0
thumb_down
0
chat_bubble_outline
0
settings
Enjoy our search
Hit / to insta-search docs and recipes!