python - Python Pandas:group by 正在删除列
问题描述
我的问题是在 group by 之后我留下了其他列而不是函数和索引。我想在 groupby 和 index 之后获取所有列。我该如何解决?
编码:
import pandas as pd
df = pd.read_excel('C:/Users/ja/Inne/Desktop/my.xlsx')
df2 = df.groupby('lokalny_id')['url'].agg(','.join)
df2 = pd.DataFrame(df2)
我的数据框:
lokalny_id url year fid status
0 1234 73678_919317_M-33-35-D-a-1-4.tif 2022 123 w.
1 12 73678_919385_M-33-23-A-r-6-2.tif 2023 2 z.
2 1234 73678_919317_M-33-35-D-a-1-4.tif 2022 123 w.
3 13 73678_919385_M-33-23-O-k-2-3.tif 2020 3 z.
4 1234 73678_919317_M-33-35-D-a-1-4.tif 2022 123 w.
5 15 73678_919385_M-33-23-B-z-1-7.tif 2012 5 z.
6 17 73678_919385_M-33-23-D-c-2-9.tif 2013 6 o.
分组后: 在此处输入图像描述
解决方案
您应该将不想聚合的所有列添加到索引中,并在完成后重置索引:
df2 = df.groupby(['lokalny_id', 'year', 'fid'])['url'].agg(','.join).reset_index()
它按预期给出:
lokalny_id year fid url
0 12 2023 2 73678_919385_M-33-23-A-r-6-2.tif
1 13 2020 3 73678_919385_M-33-23-O-k-2-3.tif
2 15 2012 5 73678_919385_M-33-23-B-z-1-7.tif
3 17 2013 6 73678_919385_M-33-23-D-c-2-9.tif
4 1234 2022 123 73678_919317_M-33-35-D-a-1-4.tif,73678_919317_...
推荐阅读
- javascript - 在javascript中处理许多事件侦听器的正确方法
- android - Android 10 发布后如何重新实现已弃用的方法?使用 MediaStore 和存储?
- vba - How do I assign an Interior-Object to a Range?
- ignition - Ignition 7.8 – 通过脚本从容器内的文本区域获取组件文本
- python - 获取比较多列的最大值并返回特定值
- python - 估计 Python 到 Python IPC 的延迟
- android - 按 serverTimestamp 排序 collectionGroup
- php - 如何从数据库中拉取数据-Laravel
- katex - KaTeX 没有渲染
- docker - 我应该安装什么包而不是 libpcre++-dev 才能在 Alpine Golang 中使用 C 代码?