Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.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 3.x 我需要关于如何压缩此数据帧的建议_Python 3.x_Pandas_Pandas Groupby - Fatal编程技术网

Python 3.x 我需要关于如何压缩此数据帧的建议

Python 3.x 我需要关于如何压缩此数据帧的建议,python-3.x,pandas,pandas-groupby,Python 3.x,Pandas,Pandas Groupby,下面是我的数据框架,我相信我需要使用groupby或pivot,但还没有得到任何正确的工作 LOGIN MANAGER 7 8 9 10 11 UNITS HOURS UPH 0 joeblow MSmith 1 21 1 47.01 1 joeblow MSmith 0.25

下面是我的数据框架,我相信我需要使用groupby或pivot,但还没有得到任何正确的工作

       LOGIN  MANAGER     7     8     9    10    11    UNITS  HOURS    UPH
0      joeblow  MSmith    1                             21     1      47.01
1      joeblow  MSmith        0.25                      18     0.25   75.83
2      joeblow  MSmith                1                 12     1      87.05
3      joeblow  MSmith                    0.26          13     0.26   206.9
4      joeblow  MSmith                          0.43    23     0.43   53.18
我的预期输出如下所示,单位和小时相加,UPH取平均值,其他列按groupby计算:

        LOGIN  MANAGER     7     8     9    10    11    UNITS HOURS    UPH
0      joeblow  MSmith     1    0.25   1   0.26  0.43    66    2.94   93.994

首先使用函数创建列
dict

d={'7':'first','8':'first','9':'first','10':'first','11':'first','UNITS':'sum','HOURS':'sum','UPH':'mean'}
然后使用
agg

yourdf=df.groupby(['LOGIN','MANAGER']).agg(d)

首先使用函数创建列
dict

d={'7':'first','8':'first','9':'first','10':'first','11':'first','UNITS':'sum','HOURS':'sum','UPH':'mean'}
然后使用
agg

yourdf=df.groupby(['LOGIN','MANAGER']).agg(d)

我得到:TypeError:只能将str(而不是“float”)连接到str。@user3249641检查您的列,可能它不是“7”7@user3249641最好将所有列转换回数值(在您的例子中是float),然后运行我的代码,它应该可以工作:-),我的dict中有一个输入错误,应该是单位而不是单位。就是说,我的df没有首先转换回数字。再次感谢!我得到:TypeError:只能将str(而不是“float”)连接到str。@user3249641检查您的列,可能它不是“7”7@user3249641最好将所有列转换回数值(在您的例子中是float),然后运行我的代码,它应该可以工作:-),我的dict中有一个输入错误,应该是单位而不是单位。就是说,我的df没有首先转换回数字。再次感谢!