Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.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 - Fatal编程技术网

Python多处理类型错误

Python多处理类型错误,python,pandas,Python,Pandas,我有一些这样的代码 我在执行作业[I].get()时出错,这是一个multiprocessing.pool.ApplyResult对象 类型错误:“Series”对象不可调用 import multiprocessing import numpy as np import pandas as pd def tf(x): return np.mean(x) def main(): pool=multiprocessing.Pool(6) sds=pd.Series(np

我有一些这样的代码

我在执行作业[I].get()时出错,这是一个multiprocessing.pool.ApplyResult对象

类型错误:“Series”对象不可调用

import multiprocessing 
import numpy as np
import pandas as pd
def tf(x):
    return np.mean(x)

def main():
    pool=multiprocessing.Pool(6)
    sds=pd.Series(np.random.normal(0,.01,1000))
    jobs=[]

    for i in xrange(10):
        jobs.append(pool.apply_async(pd.rolling_apply(sds,2,tf)))

    pool.close()
    pool.join()


    for i in xrange(len(jobs)):
        jobs[i].get()




if __name__=="__main__":
    main()

这是因为
pool.apply\u async
的第一个参数应该是一个函数,但您正在传递
pd.rolling\u apply
的结果,这是一个
系列。我不太确定你想用这段代码实现什么,但我想你可能希望在循环中有这样的东西

func = lambda s: pd.rolling_apply(s, 2, tf)
job = pool.apply_async(func, sds)
jobs.append(job)
另外,我可以将
np.mean
传递到
pd.rolling\u apply

lambda s: pd.rolling_apply(s, 2 np.mean)
tf
的定义对我来说似乎是多余的

TypeError:“Series”对象不可调用

这是因为您将函数的结果传递给池,而不是像您应该做的那样传递函数本身

你应该做以下几点:

import multiprocessing 
import numpy as np
import pandas as pd

def tf(x):
    return np.mean(x)

def main():
    pool=multiprocessing.Pool(6)
    sds=pd.Series(np.random.normal(0,.01,1000))
    jobs=[]

    for i in xrange(10):
        jobs.append( pool.apply_async(pd.rolling_apply, (sds,2,tf)) )

    pool.close()
    pool.join()


    for i in xrange(len(jobs)):
        jobs[i].get()

if __name__=="__main__":
    main()
输出:

0          NaN
1     0.009682
2     0.002747
3     0.005108
4     0.002115
5     0.000449
6     0.011551
7     0.000686
8    -0.004860
9    -0.007568
10   -0.005052
11   -0.004860
12   -0.003354
13    0.005291
14    0.000845
...
985   -0.001762
986   -0.008001
987   -0.007872
988   -0.007356
989   -0.003436
990   -0.003725
991   -0.010541
992   -0.001246
993    0.002308
994    0.004322
995    0.010862
996    0.003545
997   -0.002039
998    0.003992
999   -0.006216
Length: 1000, dtype: float64
0          NaN
1     0.009682
2     0.002747
3     0.005108
4     0.002115
5     0.000449
6     0.011551
7     0.000686
8    -0.004860
9    -0.007568
10   -0.005052
11   -0.004860
12   -0.003354
13    0.005291
14    0.000845
...
985   -0.001762
986   -0.008001
987   -0.007872
988   -0.007356
989   -0.003436
990   -0.003725
991   -0.010541
992   -0.001246
993    0.002308
994    0.004322
995    0.010862
996    0.003545
997   -0.002039
998    0.003992
999   -0.006216
Length: 1000, dtype: float64
0          NaN
1     0.009682
2     0.002747
3     0.005108
4     0.002115
5     0.000449
6     0.011551
7     0.000686
8    -0.004860
9    -0.007568
10   -0.005052
11   -0.004860
12   -0.003354
13    0.005291
14    0.000845
...
985   -0.001762
986   -0.008001
987   -0.007872
988   -0.007356
989   -0.003436
990   -0.003725
991   -0.010541
992   -0.001246
993    0.002308
994    0.004322
995    0.010862
996    0.003545
997   -0.002039
998    0.003992
999   -0.006216
Length: 1000, dtype: float64
0          NaN
1     0.009682
2     0.002747
3     0.005108
4     0.002115
5     0.000449
6     0.011551
7     0.000686
8    -0.004860
9    -0.007568
10   -0.005052
11   -0.004860
12   -0.003354
13    0.005291
14    0.000845
...
985   -0.001762
986   -0.008001
987   -0.007872
988   -0.007356
989   -0.003436
990   -0.003725
991   -0.010541
992   -0.001246
993    0.002308
994    0.004322
995    0.010862
996    0.003545
997   -0.002039
998    0.003992
999   -0.006216
Length: 1000, dtype: float64
0          NaN
1     0.009682
2     0.002747
3     0.005108
4     0.002115
5     0.000449
6     0.011551
7     0.000686
8    -0.004860
9    -0.007568
10   -0.005052
11   -0.004860
12   -0.003354
13    0.005291
14    0.000845
...
985   -0.001762
986   -0.008001
987   -0.007872
988   -0.007356
989   -0.003436
990   -0.003725
991   -0.010541
992   -0.001246
993    0.002308
994    0.004322
995    0.010862
996    0.003545
997   -0.002039
998    0.003992
999   -0.006216
Length: 1000, dtype: float64
0          NaN
1     0.009682
2     0.002747
3     0.005108
4     0.002115
5     0.000449
6     0.011551
7     0.000686
8    -0.004860
9    -0.007568
10   -0.005052
11   -0.004860
12   -0.003354
13    0.005291
14    0.000845
...
985   -0.001762
986   -0.008001
987   -0.007872
988   -0.007356
989   -0.003436
990   -0.003725
991   -0.010541
992   -0.001246
993    0.002308
994    0.004322
995    0.010862
996    0.003545
997   -0.002039
998    0.003992
999   -0.006216
Length: 1000, dtype: float64
0          NaN
1     0.009682
2     0.002747
3     0.005108
4     0.002115
5     0.000449
6     0.011551
7     0.000686
8    -0.004860
9    -0.007568
10   -0.005052
11   -0.004860
12   -0.003354
13    0.005291
14    0.000845
...
985   -0.001762
986   -0.008001
987   -0.007872
988   -0.007356
989   -0.003436
990   -0.003725
991   -0.010541
992   -0.001246
993    0.002308
994    0.004322
995    0.010862
996    0.003545
997   -0.002039
998    0.003992
999   -0.006216
Length: 1000, dtype: float64
0          NaN
1     0.009682
2     0.002747
3     0.005108
4     0.002115
5     0.000449
6     0.011551
7     0.000686
8    -0.004860
9    -0.007568
10   -0.005052
11   -0.004860
12   -0.003354
13    0.005291
14    0.000845
...
985   -0.001762
986   -0.008001
987   -0.007872
988   -0.007356
989   -0.003436
990   -0.003725
991   -0.010541
992   -0.001246
993    0.002308
994    0.004322
995    0.010862
996    0.003545
997   -0.002039
998    0.003992
999   -0.006216
Length: 1000, dtype: float64
0          NaN
1     0.009682
2     0.002747
3     0.005108
4     0.002115
5     0.000449
6     0.011551
7     0.000686
8    -0.004860
9    -0.007568
10   -0.005052
11   -0.004860
12   -0.003354
13    0.005291
14    0.000845
...
985   -0.001762
986   -0.008001
987   -0.007872
988   -0.007356
989   -0.003436
990   -0.003725
991   -0.010541
992   -0.001246
993    0.002308
994    0.004322
995    0.010862
996    0.003545
997   -0.002039
998    0.003992
999   -0.006216
Length: 1000, dtype: float64
0          NaN
1     0.009682
2     0.002747
3     0.005108
4     0.002115
5     0.000449
6     0.011551
7     0.000686
8    -0.004860
9    -0.007568
10   -0.005052
11   -0.004860
12   -0.003354
13    0.005291
14    0.000845
...
985   -0.001762
986   -0.008001
987   -0.007872
988   -0.007356
989   -0.003436
990   -0.003725
991   -0.010541
992   -0.001246
993    0.002308
994    0.004322
995    0.010862
996    0.003545
997   -0.002039
998    0.003992
999   -0.006216
Length: 1000, dtype: float64
应用异步用法:
apply_async(func[,args[,kwds[,callback]])

func是可调用的,args是参数。你必须通过考试
pd.rolling\u将
应用为函数,将
(sds,2,tf)应用为参数

简单地说:
jobs.append(pool.apply\u async(pd.rolling\u apply,(sds,2,tf)))

请注意,仅对于一个参数,您必须传递额外的逗号:
jobs.append(pool.apply\u async(pd.rolling\u apply,(sds,)))

与问题无关:用作业中的作业的
替换上一个循环:job.get()
是的,它有:
apply\u async(func[,args[,kwds[,callback]])