我从excel文件中读取数据,它是这样的:
我想得到每个员工的Q1和Q2的总和,所以我创建了一个字典,并希望根据它进行分组,
import pandas as pd mb2 = pd.read_excel('C:\\Users\\IBM_ADMIN\\Desktop\\ml-1m\\工作簿1.xlsx', sheetname='Sheet3') mapping = {'Jan':'Q1','Feb':'Q1','Mar':'Q1','Apr':'Q2','May':'Q2','Jun':'Q2'} mb2.groupby(by=mapping,axis=1).sum()
如何显示字段名称? 我尝试这样做,但它不起作用:
mb2.groupby(by=(mapping,'Name'),axis=1).sum()I read data from an excel file, it is like this:
and I want to get the sum of Q1 and Q2 for each employee, so I create a dictionary, and want to group by based on that,
import pandas as pd mb2 = pd.read_excel('C:\\Users\\IBM_ADMIN\\Desktop\\ml-1m\\工作簿1.xlsx', sheetname='Sheet3') mapping = {'Jan':'Q1','Feb':'Q1','Mar':'Q1','Apr':'Q2','May':'Q2','Jun':'Q2'} mb2.groupby(by=mapping,axis=1).sum()How to show also the field Name? I try to do like this, but it didn't work:
mb2.groupby(by=(mapping,'Name'),axis=1).sum()最满意答案
一个快速的解决方案是将生成的DataFrame保存在一个新变量(以下代码中的grouped_data )中,然后使用原始DataFrame为其分配Name列:
grouped_data = mb2.groupby(by=mapping,axis=1).sum() grouped_data['Name'] = mb2['Name'] print(grouped_data)编辑:实现相同结果的另一种方法是修改mapping字典,向其添加"Name": "Name"对,并像以前一样调用mb2.groupby(by=mapping,axis=1).sum() 。
A quick solution is to save the resulting DataFrame in a new variable (grouped_data in the following code) and then assign the Name column to it using the original DataFrame:
grouped_data = mb2.groupby(by=mapping,axis=1).sum() grouped_data['Name'] = mb2['Name'] print(grouped_data)EDIT: Another way of achieving the same result is to modify the mapping dictionary, adding a "Name": "Name" pair to it, and calling mb2.groupby(by=mapping,axis=1).sum() as before.
更多推荐
发布评论