在df中将值拆分为字典(有些行没有所有值)到新列的最佳方法是什么?
发自:
df = pd.DataFrame({'index': [0, 1, 2],
'a': [{'name': 'peter', 'country': 'us', 'document': 'singular', 'date': '2023-06-27'},
{'country': 'italy', 'document': 'earth', 'date': '2023-06-25'},
{'name': 'maria', 'country': 'spain', 'date': '2023-06-23'}]})| index | a |
|:-----:|:-------------------------------------------------------------------------:|
| 0 | {'name':'peter','country':'us','document':'singular','date':'2023-06-27'} |
| 1 | {'country':'italy','document':'earth','date':'2023-06-25'} |
| 2 | {'name':'maria','country':'spain','date':'2023-06-23'} |至
| index | name | country | document | date |
|:-----:|:------:|:-------:|:--------:|:----------:|
| 0 | peter | us | singular | 2023-06-27 |
| 1 | nan | italy | earth | 2023-06-25 |
| 2 | maria | spain | NaN | 2023-06-23 |发布于 2022-01-29 20:11:45
您可以使用json_normalize列"a“并将其返回到DataFrame:
out = df.join(pd.json_normalize(df['a'])).drop(columns=['a'])输出:
index name country document date
0 0 peter us singular 2023-06-27
1 1 NaN italy earth 2023-06-25
2 2 maria spain NaN 2023-06-23发布于 2022-01-29 20:24:43
字典中有'a‘和'index’键,您可以使用'a‘键中的数据来实现这一点。
a=[{'name': 'peter', 'country': 'us', 'document': 'singular', 'date': '2023-06-27'},{'country': 'italy', 'document': 'earth', 'date': '2023-06-25'},{'name': 'maria', 'country': 'spain', 'date': '2023-06-23'}]那就这么做吧
pd.DataFrame(a).reset_index()产出:
index name country document date
0 0 peter us singular 2023-06-27
1 1 NaN italy earth 2023-06-25
2 2 maria spain NaN 2023-06-23https://stackoverflow.com/questions/70909302
复制相似问题