Skip to content

Instantly share code, notes, and snippets.

@egeulgen
Created October 30, 2018 19:22
Show Gist options
  • Save egeulgen/9b133fff2f6f780aff258a09bfcb1db7 to your computer and use it in GitHub Desktop.
Save egeulgen/9b133fff2f6f780aff258a09bfcb1db7 to your computer and use it in GitHub Desktop.
Splits dataframe into rows by each value in list contained in the dataframe (pandas)
def splitDataFrameList(df,target_column,separator):
''' df = dataframe to split,
target_column = the column containing the values to split
separator = the symbol used to perform the split
returns: a dataframe with each entry for the target column separated, with each element moved into a new row.
The values in the other columns are duplicated across the newly divided rows.
'''
def splitListToRows(row,row_accumulator,target_column,separator):
split_row = row[target_column].split(separator)
for s in split_row:
new_row = row.to_dict()
new_row[target_column] = s
row_accumulator.append(new_row)
new_rows = []
df.apply(splitListToRows,axis=1,args = (new_rows,target_column,separator))
new_df = pd.DataFrame(new_rows)
return new_df
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment