Skip to content Skip to sidebar Skip to footer

Extracting Tuples Into Rows In A Pandas Dataframe

I have got a DataFrame that looks like this: function_name argument A B func1 (func1_arg1, func1_arg2) value_a1 b fu

Solution 1:

If you have a dataframe data_frame then applying pd.Series after setting the index as function_name, stacking and resetting the index will give you the resultant output

D = {'function_name': ['func1', 'func2', 'func3'],
 'argument': [('func1_arg1', 'func1_arg2'), 
              ('func2_arg1',), 
              ('func3_arg1', 'func3_arg2', 'func3_arg3')],
 'A': ['value_a1', 'value_a2', 'value_a3'],
 'B': 'b'}
data_frame = pd.DataFrame(D)

new_frame = data_frame.set_index(['function_name','A','B'])['argument'].apply(pd.Series).stack().to_frame('argument').reset_index().drop('level_3',1)

Output:

 function_name         A  B    argument
0         func1  value_a1  b  func1_arg1
1         func1  value_a1  b  func1_arg2
2         func2  value_a2  b  func2_arg1
3         func3  value_a3  b  func3_arg1
4         func3  value_a3  b  func3_arg2
5         func3  value_a3  b  func3_arg3

Post a Comment for "Extracting Tuples Into Rows In A Pandas Dataframe"