Python df.values和np.apply_沿_轴出现故障
我需要迭代数据帧的行。由于为每一行创建一个Series对象,所以“native pandas”迭代相当慢,因此我决定迭代底层ndarray行 用于说明该过程的伪代码:Python df.values和np.apply_沿_轴出现故障,python,numpy,pandas,row,iteration,Python,Numpy,Pandas,Row,Iteration,我需要迭代数据帧的行。由于为每一行创建一个Series对象,所以“native pandas”迭代相当慢,因此我决定迭代底层ndarray行 用于说明该过程的伪代码: import pandas as pd import numpy as np store = pd.HDFStore('example.h5') df = pandas.store[name] df = df[10:20] result = np.apply_along_axis(mapped_function, axis=1,
import pandas as pd
import numpy as np
store = pd.HDFStore('example.h5')
df = pandas.store[name]
df = df[10:20]
result = np.apply_along_axis(mapped_function, axis=1, arr=df[['colA', 'colC', 'colG']].values)
问题是有些不可预测,我偶尔会出现如下错误:
Traceback (most recent call last):
File "C:\Documents and Settings\Example User\My Documents\Example Directory\modul
e1.py", line 15, in <module>
module2.main()
File "C:\Documents and Settings\Example User\My Documents\Example Directory\dir1\module2.py", line 183, in main
result = np.apply_along_axis(mapped_function, axis=1, arr=df[['colA', 'colC', 'colG']].values)
File "C:\Anaconda\lib\site-packages\numpy\lib\shape_base.py", line 129, in app
ly_along_axis
outarr[tuple(i.tolist())] = res
ValueError: cannot copy sequence with size 7 to array axis with dimension 11
因此,mapped_函数
似乎没有故障,但是apply_沿着_轴
似乎遇到了故障。不幸的是,我没有幸运地诊断出原因
以前有人遇到过这个问题吗 那么,你的函数给出的值比它得到的要少?df[['colA','colC','colG']]是什么样的值?形状,数据类型?预期的
结果的形状是什么?所有mapped_函数(行)
是否返回相同的形状?对于2darr
,apply_沿_轴
的outarr[k,:]=mapped_函数(arr[k,:])
的范围是k
。outarr
的形状由mapped_函数(arr[0,:])
决定。
result = []
for row in df = df[10:20]:
result += [mapped_function(row)]