python/pandas에서 다음 작업을 수행하는 가장 좋은 방법은 무엇입니까?여러 열을 사용하여 변수를 재설정하고 pandas df의 python 함수
트렌드 데이터 2가 트렌드 데이터 1과 일치하지 않는 경우를 계산하고 경향 데이터 1이 변경 될 때마다 카운터를 재설정하려고합니다.
데이터 프레임에서 올바른 방법으로이 예제에서 새로운 열 df['D']
을 만드는 데 어려움을 겪고 있습니다.
df['A']
= 트렌드 데이터 1
df['B']
= 트렌드 데이터 1
df['C']
= 트렌드 데이터 2
df['D']
= 원하는 결과 엑셀
df['A'] df['B'] df['C'] df['D']
1 0 1 0
1 0 1 0
-1 1 -1 0
-1 0 -1 0
-1 0 1 1
-1 0 -1 1
-1 0 -1 1
-1 0 1 2
-1 0 1 2
-1 0 -1 2
1 1 1 0
1 0 1 0
1 0 -1 1
1 0 1 1
1 0 -1 2
1 0 1 2
1 0 1 2
단순히 사용한다 변경할 경우 부울 지표
=IF(B2=1,0,IF(AND((C2<>C1),(C2<>A2)),D1+1,D1))
그러나 나는 항상 어려움을 겪었습니다. 팬더에서 이전 세포를 참조 할 수 없기 때문입니다.
나는 np.where()
을 사용할 수 없습니다. 나는 그것의 함수를 올바른 방법으로 적용한다고 확신하지만, 다른 컬럼을 참조하고 변수를 재설정하는 것으로는 보이지 않는다. 다른 답변을 살펴 보았지만이 상황에서 작동하는 것을 찾을 수 없습니다.
뭔가
- 같은 노트 : 나는이 질문에 오히려 간단하지만 단지 라운드 계속 뭔가를 누락 느낌으로,
df['E'] = df['C'].shift(1)
def corrections(x):
if df['B'] == 1:
x = 0
elif ((df['C'] != df['E']) AND (df['C'] != df['A'])):
x = x + 1
else:
x
사과를 만들 서클에서!
질문을 편집하여 2의 첫 번째 그룹이 어디에서 왔는지 설명 할 수 있습니까? – DSM