롤링 윈도우처럼 연속적인 행을 서로 겹치는 부분이 증가하도록 결합하는 방법은 무엇입니까?

하비에르 TG

나는 현재 판다를 배우기 시작했고 그것으로 작업을하기 위해 고군분투하고있다. 내가하려는 것은 두 개의 연속 행을 결합하여 데이터 프레임에 저장된 데이터를 늘리는 것입니다. 구르는 창문처럼.

이 작은 데이터 프레임으로 질문을 예시 할 수 있다고 생각합니다.

df = pd.DataFrame([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]], columns=['A', 'B', 'C', 'D'])

다음을 제공합니다.

    A   B   C   D
0   1   2   3   4
1   5   6   7   8
2   9   10  11  12

그것으로, 내가 성취하고 싶지만 방법을 모르는 것은 다음과 같은 데이터 프레임입니다.

    A   B   C   D
0   1   2   3   4
1   2   3   4   5
2   3   4   5   6
3   4   5   6   7
4   5   6   7   8
5   6   7   8   9
6   7   8   9   10
7   8   9   10  11
8   9   10  11  12

마치 초기 데이터 프레임의 각 쌍 사이에 여러 롤링 윈도우를 사용하는 것처럼. 이 특정 데이터 프레임을 사용하고 있지 않습니다 (값이 실제로 1,2,3,4 ...처럼 정렬되지 않음). 내가 사용하는 것은 csv에서 가져온 일반 데이터 프레임입니다.

가능합니까?, 미리 감사드립니다!


편집하다

모든 응답에 감사드립니다. anky와 Shubham Sharma가 제공 한 두 답변 모두 완벽하게 작동합니다. 내 실제 데이터 프레임과 함께 두 가지를 모두 사용하여 얻은 결과는 다음과 같습니다.

초기 데이터 프레임 여기에 이미지 설명 입력

내 질문에 필요한 여러 롤링 창을 추가 한 후 여기에 이미지 설명 입력

Anky

우아하지는 않지만 시도해보십시오.

def fun(dataframe,n):
    l = dataframe.stack().tolist()
    return (pd.DataFrame([l[e:e+n] for e,i in enumerate(l)],
        columns=dataframe.columns).dropna().astype(dataframe.dtypes))

fun(df,df.shape[1])

   A   B   C   D
0  1   2   3   4
1  2   3   4   5
2  3   4   5   6
3  4   5   6   7
4  5   6   7   8
5  6   7   8   9
6  7   8   9  10
7  8   9  10  11
8  9  10  11  12

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관