2 개 이상의 데이터 프레임 병합 및 결과 전치

vkd86

아래 코드를 사용하여 Panda 비닝 프로세스에서 파생 된 여러 DF가 있습니다.

df2 = df.resample(rule=timedelta(milliseconds=250))[('diffA')].mean().dropna() 
df3 = df.resample(rule=timedelta(milliseconds=250))[('diffB')].mean().dropna()

.. 등

모든 DF에는 Datetime 형식 (예 : 2019-11-22 13 : 18 : 00.000)의 '시간'이 포함 된 열과 숫자 (예 : 0.06)가 포함 된 두 번째 열이 있습니다. 다른 DF는 다른 '시간'빈을 갖습니다. 결과 DF의 특정 요소에 'NaN'이 포함될 수있는 모든 DF를 하나로 연결하려고합니다. DF의 Datetime 형식은 사용할 때 오류를 제공합니다.

방법 1) df4=pd.merge(df2,df3,left_on='time',right_on='time')

방법 2) pd.pivot_table(df2, values = 'diffA', index=['time'], columns = 'time').reset_index()

DF가 결합되면 결과 DF도 전치하고 싶습니다.

행 : are 'DiffA', 'DiffB'.. etc 열 : 그에 따른 시간 빈입니다.

시도하기 위해 개별 DF로 transpose () 메서드를 시도했지만 내 시간 / index가 'Datetime'형식이므로 오류가 발생합니다.

그것이 제자리에 있으면 결과로 전치 된 DF에서 개별 데이터 시리즈로 행을 추출하는 방법을 찾고 있습니다.

위의 내용을 지침으로 어떻게 달성 할 수 있는지 조언하고 피드백에 감사드립니다! 도와 주셔서 정말 감사합니다.

데이터 프레임 (예 : 2 개)

time                     DiffA
2019-11-25 08:18:01.250 0.06
2019-11-25 08:18:01.500 0.05
2019-11-25 08:18:01.750 0.04
2019-11-25 08:18:02.000 0
2019-11-25 08:18:02.250 0.22
2019-11-25 08:18:02.500 0.06
time                        DiffB
2019-11-26 08:18:01.250    0.2
2019-11-27 08:18:01.500    0.05
2019-11-25 08:18:01.000    0.6
2019-11-25 08:18:02.000    0.01
2019-11-25 08:18:02.250    0.8
2019-11-25 08:18:02.500    0.5

결과적으로 병합 된 DF는 다음과 같아야합니다 (텍스트 전용).

time ( first row )   
2019-11-25 08:18:01.000,     
2019-11-25 08:18:01.250,     
2019-11-25 08:18:01.500,     
2019-11-25 08:18:01.750,     
2019-11-25 08:18:02.000,     
2019-11-25 08:18:02.250,     
2019-11-25 08:18:02.500,     
2019-11-26 08:18:01.250,     
2019-11-27 08:18:01.500

(두 번째 행)

diffA   nan 0.06    0.05    0.04    0   0.22    0.06    nan nan

(세 번째 행)

diffB   0.6 nan nan nan 0.01    0.8 0.5 0.2 0.05
CypherX

해결책

핵심 논리 : 목표를 달성 하려면 각 샘플링 데이터 프레임 에 대한 열의 외부 조인함께 사용해야합니다. 마지막으로 인덱스를 열 시간 으로 재설정하면 솔루션이 완료됩니다.'time'merge

아래에서 만든 더미 데이터를 사용하여 재현 가능한 솔루션을 만듭니다.

참고 : df최종 데이터 프레임과 df0원본 데이터 프레임으로 사용했습니다. 내가 df0당신입니다 df.

df = pd.DataFrame()
for i, column_name in zip(range(5), column_names):
    if i==0:
        df = df0.sample(n=10, random_state=i).rename(columns={'data': f'df{column_name}'})
    else:
        df_other = df0.sample(n=10, random_state=i).rename(columns={'data': f'df{column_name}'})
        df = pd.merge(df, df_other, on='time', how='outer')

print(df.set_index('time').T)

출력 :

여기에 이미지 설명 입력

더미 데이터

import pandas as pd

# dummy data:
df0 = pd.DataFrame()
df0['time'] = pd.date_range(start='2020-02-01', periods=15, freq='D')
df0['data'] = np.random.randint(0, high=9, size=15)
print(df0)

산출:

         time  data
0  2020-02-01     6
1  2020-02-02     1
2  2020-02-03     7
3  2020-02-04     0
4  2020-02-05     8
5  2020-02-06     8
6  2020-02-07     1
7  2020-02-08     6
8  2020-02-09     2
9  2020-02-10     6
10 2020-02-11     8
11 2020-02-12     3
12 2020-02-13     0
13 2020-02-14     1
14 2020-02-15     0

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

2 개의 데이터 프레임을 1 개의 결과 데이터 프레임으로 병합

분류에서Dev

R : 이전 및 이전 행의 인덱스와 2 개의 데이터 프레임 병합

분류에서Dev

퍼지 일치 열 및 병합 / 결합 데이터 프레임

분류에서Dev

두 개의 데이터 프레임을 groupby 및 이름 목록과 병합

분류에서Dev

Pandas에서 2 개의 데이터 프레임을 일치하는 열과 병합

분류에서Dev

2 개의 데이터 프레임을 pandas의 다른 열과 병합

분류에서Dev

두 개의 데이터 프레임을 중첩 된 사전과 병합

분류에서Dev

인덱스 위치를 변경하지 않고 데이터 프레임을 다른 데이터 프레임의 처음 2 개 열과 결합

분류에서Dev

2 개 이상의 데이터 프레임을 pyspark와 병합하는 방법

분류에서Dev

크기가 다른 2 개의 데이터 프레임 병합

분류에서Dev

Pandas에서 2 개의 데이터 프레임 병합

분류에서Dev

Pandas : 2 개의 데이터 프레임 병합

분류에서Dev

PySpark 병합 데이터 프레임 및 개수 값

분류에서Dev

2 개의 TFS 분기를 이전 코드 및 새 레이아웃과 병합

분류에서Dev

2 개의 TFS 분기를 이전 코드 및 새 레이아웃과 병합

분류에서Dev

2 개의 Pandas 데이터 프레임 결합

분류에서Dev

Python 병합 데이터 프레임 및 목록 사전 사전

분류에서Dev

Pandas 데이터 프레임과 개체 병합

분류에서Dev

NaN을 이전 값으로 채우는 Pandas 데이터 프레임의 2 개 열 병합

분류에서Dev

두 개의 데이터 프레임을 새 열과 결합

분류에서Dev

"aes"및 "manual"스케일을 결합하여 ggplot (2 개의 데이터 프레임)에서 범례 생성

분류에서Dev

한 번에 두 개 이상의 데이터 프레임 병합

분류에서Dev

일치하는 날짜별로 2 개의 데이터 프레임 열을 하나로 병합

분류에서Dev

두 개의 Pandas 데이터 프레임 결합 / 병합. 한 수준을 다른 수준의 색인과 일치시킵니다.

분류에서Dev

R의 열 값에 따라 2 개 이상의 데이터 프레임을 병합합니다.

분류에서Dev

두 개의 데이터 프레임을 ID 및 날짜별로 병합

분류에서Dev

R에서 두 개의 데이터 프레임 추가 및 병합

분류에서Dev

개별 데이터 프레임과 하나의 데이터 프레임 목록에 대해 R에서 병합을 적용하는 다른 결과

분류에서Dev

데이터 프레임을 사전과 병합

Related 관련 기사

  1. 1

    2 개의 데이터 프레임을 1 개의 결과 데이터 프레임으로 병합

  2. 2

    R : 이전 및 이전 행의 인덱스와 2 개의 데이터 프레임 병합

  3. 3

    퍼지 일치 열 및 병합 / 결합 데이터 프레임

  4. 4

    두 개의 데이터 프레임을 groupby 및 이름 목록과 병합

  5. 5

    Pandas에서 2 개의 데이터 프레임을 일치하는 열과 병합

  6. 6

    2 개의 데이터 프레임을 pandas의 다른 열과 병합

  7. 7

    두 개의 데이터 프레임을 중첩 된 사전과 병합

  8. 8

    인덱스 위치를 변경하지 않고 데이터 프레임을 다른 데이터 프레임의 처음 2 개 열과 결합

  9. 9

    2 개 이상의 데이터 프레임을 pyspark와 병합하는 방법

  10. 10

    크기가 다른 2 개의 데이터 프레임 병합

  11. 11

    Pandas에서 2 개의 데이터 프레임 병합

  12. 12

    Pandas : 2 개의 데이터 프레임 병합

  13. 13

    PySpark 병합 데이터 프레임 및 개수 값

  14. 14

    2 개의 TFS 분기를 이전 코드 및 새 레이아웃과 병합

  15. 15

    2 개의 TFS 분기를 이전 코드 및 새 레이아웃과 병합

  16. 16

    2 개의 Pandas 데이터 프레임 결합

  17. 17

    Python 병합 데이터 프레임 및 목록 사전 사전

  18. 18

    Pandas 데이터 프레임과 개체 병합

  19. 19

    NaN을 이전 값으로 채우는 Pandas 데이터 프레임의 2 개 열 병합

  20. 20

    두 개의 데이터 프레임을 새 열과 결합

  21. 21

    "aes"및 "manual"스케일을 결합하여 ggplot (2 개의 데이터 프레임)에서 범례 생성

  22. 22

    한 번에 두 개 이상의 데이터 프레임 병합

  23. 23

    일치하는 날짜별로 2 개의 데이터 프레임 열을 하나로 병합

  24. 24

    두 개의 Pandas 데이터 프레임 결합 / 병합. 한 수준을 다른 수준의 색인과 일치시킵니다.

  25. 25

    R의 열 값에 따라 2 개 이상의 데이터 프레임을 병합합니다.

  26. 26

    두 개의 데이터 프레임을 ID 및 날짜별로 병합

  27. 27

    R에서 두 개의 데이터 프레임 추가 및 병합

  28. 28

    개별 데이터 프레임과 하나의 데이터 프레임 목록에 대해 R에서 병합을 적용하는 다른 결과

  29. 29

    데이터 프레임을 사전과 병합

뜨겁다태그

보관