Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python,Pandas:根据列值合并的一些行的总和_Python_Pandas - Fatal编程技术网

Python,Pandas:根据列值合并的一些行的总和

Python,Pandas:根据列值合并的一些行的总和,python,pandas,Python,Pandas,我有下面的数据帧示例。我试图得到一些特殊行的总和。我已经研究了如何执行,但是我找不到解决方案。你能告诉我怎么走吗?示例如下所示。我想我可以应用group by和sum,但有一个列值_3,我不想对它们求和,只是保持不变。值3为定值,根据机器和换档值确定形状 data = {'Machine':['Mch_1', 'Mch_1', 'Mch_1', 'Mch_1', 'Mch_2', 'Mch_2'], 'Shift':['Day', 'Day', 'Night', 'Night', 'Night'

我有下面的数据帧示例。我试图得到一些特殊行的总和。我已经研究了如何执行,但是我找不到解决方案。你能告诉我怎么走吗?示例如下所示。我想我可以应用group by和sum,但有一个列值_3,我不想对它们求和,只是保持不变。值3为定值,根据机器和换档值确定形状

data = {'Machine':['Mch_1', 'Mch_1', 'Mch_1', 'Mch_1', 'Mch_2', 'Mch_2'], 'Shift':['Day', 'Day', 'Night', 'Night', 'Night', 'Night'], 'Value_1':[1, 2, 0, 0, 1, 3], 'Value_2':[0, 2, 2, 1, 3, 0], 'Value_3':[5, 5, 2, 2, 6, 6]} 

df = pd.DataFrame(data) 
输出:

妇幼保健院1日1日0日5

妇幼保健院1日2日5

Mch_1__0_2_2_2_2

妇幼保健院1晚0晚1晚2

妇幼保健院2晚1晚3晚6

妇幼保健院2晚3晚0晚6

我想要的就像dataframe中显示的那样

expected = {'Machine':['Mch_1', 'Mch_1', 'Mch_2'], 'Shift':['Day', 'Night', 'Night'], 'Value_1':[3, 0, 4], 'Value_2':[2, 3, 3]} 
df_expected = pd.DataFrame(expected) 
df_expected
输出:

妇幼保健院1日3日2日5

Mch第1晚第0晚第3晚第2晚

妇幼保健院2晚4晚3晚6


多谢各位

第一个想法是聚合函数的传递字典,因为最后一列可以使用First或last函数:

d = {'Value_1':'sum','Value_2':'sum','Value_3':'first'}
df1 = df.groupby(['Machine','Shift'], as_index=False).agg(d)
如果需要更动态的解决方案,则意味着对所有不带值的列求和\u 3使用dict.from\u键,通过列表中未指定值的所有列创建动态字典,并且:


第一个想法是聚合函数的传递字典,因为最后一列可能使用第一个或最后一个函数:

d = {'Value_1':'sum','Value_2':'sum','Value_3':'first'}
df1 = df.groupby(['Machine','Shift'], as_index=False).agg(d)
如果需要更动态的解决方案,则意味着对所有不带值的列求和\u 3使用dict.from\u键,通过列表中未指定值的所有列创建动态字典,并且: