python - 在 pandas 中对相同的列名进行分组会在列中添加“.1”
问题描述
我正在尝试在单个数据框中对相同的列进行分组,类似于这个问题:Grouping on same column names in pandas
然而,这个答案对我不起作用。当我对该问题应用已接受的答案时,我的数据框已将“.1”添加到重复列的第二次迭代中。我的重复列没有重复数据,这可能是问题所在?
这是我的桌子:
Timepoint Col1 Col2 Col3 Col1 Col2 Col3
1 1 2 3
2 4 5 6
3 7 8 9
4 10 11 12
我希望表格看起来像这样:
Timepoint Col1 Col2 Col3
1 1 2 3
2 4 5 6
3 7 8 9
4 10 11 12
但是当我应用链接代码时,表格看起来像这样:
Timepoint Col1 Col2 Col3 Col1.1 Col2.1 Col3.1
1 1 2 3
2 4 5 6
3 7 8 9
4 10 11 12
我的数据框有数百列,所以我需要一个不指定需要分组的列的解决方案。
请注意,这不是此问题的重复:将 NaN 移到其各自行的末尾,因为该问题没有重复的列名,并且它将数据转移到不同标记的列。
解决方案
Timepoint
通过by创建索引DataFrame.set_index
,然后使用groupby
lambda 函数与split
和聚合sum
,或max
,或mean
或first
。聚合方法取决于数据,但如果总是像样本数据输出中的缺失值总是相同的:
df = (df.set_index('Timepoint')
.groupby(lambda x: x.split('.')[0], axis=1).sum()
.reset_index())
print (df)
Timepoint Col1 Col2 Col3
0 1 1.0 2.0 3.0
1 2 4.0 5.0 6.0
2 3 7.0 8.0 9.0
3 4 10.0 11.0 12.0
推荐阅读
- r - 适当的统计检验来分析时间序列数据斜率的差异
- php - Woocommerce 产品插件(如何限制复选框选择?)
- python-3.x - 如何在python中录制直播
- c++ - 流的填充字符的默认定位
- c++ - 如何在 Visual Studio 中删除包含的头文件?
- python - 带有 opencv 和 dlib face_recognition 库的人脸识别考勤系统给出不正确的识别
- javascript - Safari 允许文本根据移动文本大小进行缩放
- docker - 如何让 docker COPY 忽略文件权限?
- apache - Apache2 通配符未显示正确的 DocumentRoot
- c# - 在 RDLC 中证明