首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据列名中的模式求和列

根据列名中的模式求和列
EN

Stack Overflow用户
提问于 2018-04-26 08:50:23
回答 1查看 100关注 0票数 1

让我们从非常简单的抽象示例开始,我有这样一个dataframe:

代码语言:javascript
复制
import pandas as pd

d = {'1-A': [1, 2], '1-B': [3, 4], '2-A': [3, 4], '5-B': [2, 7]}
df = pd.DataFrame(data=d)

     1-A  1-B  2-A  5-B
0    1    3    3    2
1    2    4    4    7

我正在寻找优雅的混乱解决方案,以获得这样的数据:

代码语言:javascript
复制
     1    2    5
0    4    3    2
1    6    4    7

举个例子,更具体的第1-A列,意思是person id=1,费用类别A。行是每个月的开支。因此,我希望每个人每月的费用跨类别(因此,第1栏是第1-A和1-B栏之和)。注意,当没有费用时,就没有0列。当然,它应该为更多的列( it和类别)做好准备。

我很肯定,对于这一点,有很好的分离列选择和求和的智能解决方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-26 08:51:48

使用带有拆分的groupby和lambda函数,并选择第一个值,用于按列分组添加axis=1

代码语言:javascript
复制
df1 = df.groupby(lambda x: x.split('-')[0], axis=1).sum()
#alternative
#df1 = df.groupby(df.columns.str.split('-').str[0], axis=1).sum()
print (df1) 

   1  2  5
0  4  3  2
1  6  4  7
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50038718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档