Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.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 熊猫分组和转换需要很长时间_Python_Pandas_Dataframe_Group By - Fatal编程技术网

Python 熊猫分组和转换需要很长时间

Python 熊猫分组和转换需要很长时间,python,pandas,dataframe,group-by,Python,Pandas,Dataframe,Group By,给定与此类似的数据帧(但有超过一百万行和大约140000个不同的组s) 对于每个组,我想找出时间(实际上是数据类型(我的建议:在转换之外进行lambda(计算),因此这里不需要lambda。对于lambda,我们调用计算几次(取决于有多少组) 做任何python计算都会让你的代码变慢,因为这些函数必须在你的每一行数据上被调用。你使用python内置的min吗?如果是的话,我认为这可以加快速度,但我对pandas还不够熟悉,所以不太了解它。从150秒到0.5秒。谢谢! df_test = pd.D

给定与此类似的
数据帧
(但有超过一百万行和大约140000个不同的
s)


对于每个
,我想找出
时间
(实际上是
数据类型(我的建议:在
转换
之外进行
lambda
(计算),因此这里不需要lambda。对于
lambda
,我们调用计算几次(取决于有多少组)


做任何python计算都会让你的代码变慢,因为这些函数必须在你的每一行数据上被调用。你使用python内置的min吗?如果是的话,我认为这可以加快速度,但我对pandas还不够熟悉,所以不太了解它。从150秒到0.5秒。谢谢!
df_test = pd.DataFrame({'group': {1:'A', 2:'A', 3:'A', 4:'A', 5:'B', 6:'B'},
                        'time' : {1:1,   2:3,   3:5,   4:23,  5: 7,  6: 12}})
df_test['time_since'] = df_test.groupby('group')['time'].transform(lambda d: d - d.min())
    group   time    time_since
1   A       1       0
2   A       3       2
3   A       5       4
4   A       23      22
5   B       7       0
6   B       12      5
df_test=pd.concat([df_test]*1000)
%timeit df_test['time']-df_test.groupby('group')['time'].transform(min)
1000 loops, best of 3: 1.11 ms per loop
%timeit df_test.groupby('group')['time'].transform(lambda d: d - d.min())
The slowest run took 7.20 times longer than the fastest. This could mean that an intermediate result is being cached.
100 loops, best of 3: 2.3 ms per loop