Home > front end >  Create key value pair dict for each new line
Create key value pair dict for each new line

Time:05-03

QI have a data frame of 4 columns. I need to create a {key: value} dictionary for 2 of those columns where this {key: value} pair should be created for each separate line in the data frame. Please refer to the example below:

df>>

   a  b  c  d
0  1  2  3  4
1  9  8  7  6

Expected output>>

   a  b  c  d  new-column
0  1  2  3  4  {a:1, b:2}
1  9  8  7  6  {a:9, b:8}

CodePudding user response:

You can use to_dict, craft a Series and join to the original DataFrame:

df2 = df.join(pd.Series(df[['a','b']].to_dict('index'), name='new_column'))

Output:

   a  b  c  d        new_column
0  1  2  3  4  {'a': 1, 'b': 2}
1  9  8  7  6  {'a': 9, 'b': 8}

CodePudding user response:

You can assign the values of returned dictionary of to_dict('index') to new column

df['new-column'] = df[['a','b']].to_dict('index').values()
print(df)

   a  b  c  d        new-column
0  1  2  3  4  {'a': 1, 'b': 2}
1  9  8  7  6  {'a': 9, 'b': 8}
  • Related