현재 Spyder IDE를 사용하고 있습니다. 다른 그룹을 기반으로 자체 데이터 함수에 sfill을 적용하려고합니다. 나는 확신Python pandas 적용 클래스에 정의 된 함수
TypeError: sfill() takes exactly 1 argument (2 given)
기능 sfill() 올바르게 작동, 독립을 실행할 때 :이 기능을 만들 때마다, 나는 다음과 같은 오류가 발생합니다. 내가 도대체 뭘 잘못하고있는 겁니까? 어떻게 파이썬 변수 탐색기에서 문 글로벌 희망를 사용하지 않고 이 원하는 dataframe를 표시 할 수 있습니까? 이 순간에 어떻게 수익을 사용합니까?
import pandas as pd
have = pd.DataFrame({ \
"groups": pd.Series(["group1","group1","group1","group2","group2","group2"]) \
,"a0": pd.Series(["abc","1","something here","abc2","1","something here"]) \
,"a1": pd.Series(["","2","something here","","","something here"]) \
,"a2": pd.Series(["","3","something here","","3","something here"]) \
,"a3": pd.Series(["something","1","something here","something","1","something here"]) \
,"a4": pd.Series(["","2","something here","","2","something here"]) \
,"a5": pd.Series(["","","something here","","","something here"]) \
,"a6": pd.Series(["","","something here","","","something here"]) \
,"a7": pd.Series(["cdf","5","something here","mnop","5","something here"]) \
,"a8": pd.Series(["","6","something here","","6","something here"]) \
,"a9": pd.Series(["xyz","1","something here","xyz","1","something here"]) \
})
class main(object):
def sfill(vector):
vector = vector.copy()
vector.i0, vector.i1 = vector.index[0], vector.index[1]
vector.cond = have.loc[vector.i1].ne('')
vector.loc[vector.i0, vector.cond] = vector.loc[vector.i0, vector.cond].str.strip().replace('', None)
return vector
def Development_plan(selfdev):
global want
want=have.groupby('groups', group_keys=False, sort=False).apply(selfdev.sfill)
a=main()
a.Development_plan() # this is where the issue exists
감사를 다음과 같이
내 코드입니다. 당신이 selfdev.sfill(soemthing)
를 호출 할 때 클래스의
SAS 토지에서오고 있습니까? 전역 변수'want'를 선언하고 싶지는 않을 것입니다. 그것을 클래스 변수로 만들거나'Development_plan'에서 결과를 반환하는 것으로보세요 –
hahahaha! 당신 말이 맞아요. 나는 SAS 땅에서 왔습니다. 아직도 파이썬 컨벤션에 익숙해 지려고 노력합니다. SAS에 100 % 지루함. 나는 반환을 사용하고 일하게했다. 감사. – Seb