问题
I am trying to create a dataframe from a list of values which has nested dictionaries So this is my data
 d=[{'user': 200,
 'p_val': {'a': 10, 'b': 200},
 'f_val': {'a': 20, 'b': 300},
 'life': 8},
  {'user': 202,
 'p_val': {'a': 100, 'b': 200},
 'f_val': {'a': 200, 'b': 300},
 'life': 8}]
i am trying to turn it into a dataframe as follows:
user new_col f_val   p_val life
200   a        20     10    8
200   b        300    200   8
202   a        200    100   8
202   b        300    200   8
I looked at other answers, none of them matched my requirement. The nearest I could find was this, and still did not work me. Any help would be much appreciated! Thank you
回答1:
Try
df = pd.concat([pd.DataFrame(e) for e in d])
df.reset_index().rename(columns={'index': 'newcol'})
newcol  user    p_val   f_val   life
0   a   200 10  20  8
1   b   200 200 300 8
2   a   202 100 200 8
3   b   202 200 300 8
The first line makes a DataFrame with the index being the a and b values. The second line makes this the newcol column.
来源:https://stackoverflow.com/questions/61277880/create-dataframe-from-a-nested-dictionary