我有一个Pandas Dataframe ,如下所示:
buyer_id car color year
john ferrari yellow 2022
eric ferrari red 2022
john mercedes black 1990
victoria audi yellow 2017
我想创建一个新列(每行中的JSON列表。
创建一个列“identical”,每行包含一个列表:
- 如果在'buyer_id'中只找到一个买方,则列表中的一个元素:
[{'汽车':...,'颜色':...,'年份':...}]
- 如果“buyer_id”中的多行上有相同的买方
[{“汽车”:“法拉利”,“颜色”:“黄色”、“年份”:2022年},{“汽车”:“梅赛德斯”,“颜色”:“黑色”、“年份”:1990年]
预期产出:
buyer_id car color year identical
john ferrari yellow 2022 [{'car':'ferrari', 'color': 'yellow ', 'year': 2022},{'car':'mercedes', 'color': 'black', 'year': 1990}]
eric ferrari red 2022 [{'car':'ferrari', 'color': 'red', 'year': 2022}]
john mercedes black 1990 [[{'car':'ferrari', 'color': 'yellow ', 'year': 2022},{'car':'mercedes', 'color': 'black', 'year': 1990}]
victoria audi yellow 2017 [{'car':'audi', 'color': 'yellow', 'year': 2017}]
我不知道如何与Pandas做这件事,如果它是可能的。
3条答案
按热度按时间pvabu6sv1#
您可以将
GroupBy.apply
和to_json
与orient="records"
参数一起使用:或在适当位置:
输出:
bf1o4zei2#
试试看:
要将列导出为JSON,可以用途:
6vl6ewon3#