1
python2를 사용하여 문자열로 저장된 수식을 구문 분석하고 평가할 수 있기를 원합니다. 기본적으로 고객이 데이터에 적용 할 수식을 설명 할 수 있기를 바랍니다. 이 수식에는 사용자 지정 함수가있을 수 있습니다. 다음은 두 가지 예입니다 :pandas 데이터 유형으로 문자열 화 된 수식 평가
x/y
SumF(x)/y # Here SumF is my own custom function
내가 Sympy를 사용하기 시작,하지만 난 팬더 DataFrames을 평가할 때 작동하지 않습니다 얻을 수 있다는 점에서 난관에 충돌 (즉,으로 구성된 목록에 Dataframe를 변환하는 것 열 레이블 ...). 나는 Sympy가 pandas DataFrame/Series 객체를 지원하지 않는다고 생각합니다. 평소와 다르게 인생을 훨씬 쉽게 만들어 주므로이 물체를 사용하고 싶습니다.
일반용 eval()
도 사용할 수 있지만 일반적인 함정을 피하려고합니다.
사람들은 다음과 무엇을 제안 :
- 이 Sympy 어떻게 든 (아마도
ast.literal_eval()
를) 다른 것을 시도 - 사용
eval()
- 를 작동하기? 당신이 시도하고 할 수있는 경우에 최적화 된 파서를 사용하고, 또한
eval('input()')
을 허용하지 않습니다pd.eval
사용할 수 있습니다
건배
'lambdify '를 사용하여 SymPy 표현식을 파이썬 함수로 변환하는 것이 좋습니다. – asmeurer
처음에는 이것을 시도했지만 IIRC (지금은 조금 깁니다)'lambdify'가 반환 한 함수가 DataFrame을 다른 것으로 변환했습니다. 그러나, 나는 그것을 다시 시도하고, 잘 작동하는 것 같습니다. 나는 현재 0.7.4.1을 사용하고 있지만 처음 시도했을 때 이전 버전을 사용할 수있었습니다. 항상 같은 행동을 보였습니까? –
0.7.4.1은 정말 오래된 버전입니다. 가능한 경우 최신 버전을 사용하는 것이 좋습니다. – asmeurer