【发布时间】:2022-07-06 22:58:01
【问题描述】:
我的示例数据框包含:
| id1 | id2 | text | metadata |
|---|---|---|---|
| HP:001 | DO:001 | text_1 | metadata_1 |
| HP:001 | DO:001 | text_2 | metadata_2 |
我正在尝试生成一个新表,按id1 和id2 分组,其中text 和metadata 将包含来自各自记录的术语列表:
| id1 | id2 | text | metadata |
|---|---|---|---|
| HP:001 | DO:001 | ['text_1', 'text_2'] | ['metadata_1', 'metadata_2'] |
我尝试将 groupby 与 apply 和 reset_index 一起使用,但我得到:
df = pd.DataFrame(data={"id1": ["HP:001", "HP:001"],
"id2": ["DO:001", "DO:001"],
"text": ["text_1", "text_2"],
"metadata": ["metadata_1", "metadata_2"]})
outcome = df.groupby(["id1", "id2"]).apply(list)
结果是:
id1 id2
HP:001 DO:001 [id1, id2, text, metadata]
dtype: object
我可以使用reset_index 将结果解析为数据帧,但我不明白为什么我得到的是列名列表而不是其内容作为结果。
【问题讨论】: