인덱스의 데이터 프레임과 팬더의 데이터
저는 두 개의 데이터 프레임을 가지고 있고 각각은 두 개의 인덱스 열을 가지고 있습니다.저는 그것들을 병합하고 싶습니다.예를 들어 첫 번째 데이터 프레임은 다음과 같습니다.
V1
A 1/1/2012 12
2/1/2012 14
B 1/1/2012 15
2/1/2012 8
C 1/1/2012 17
2/1/2012 9
두 번째 데이터 프레임은 다음과 같습니다.
V2
A 1/1/2012 15
3/1/2012 21
B 1/1/2012 24
2/1/2012 9
D 1/1/2012 7
2/1/2012 16
그 결과 저는 다음과 같은 것을 얻고 싶습니다.
V1 V2
A 1/1/2012 12 15
2/1/2012 14 N/A
3/1/2012 N/A 21
B 1/1/2012 15 24
2/1/2012 8 9
C 1/1/2012 17 N/A
2/1/2012 9 N/A
D 1/1/2012 N/A 7
2/1/2012 N/A 16
나는 몇가지 버전을 사용해 보았습니다.pd.merge
그리고..join
방법은 아무것도 통하지 않는 것 같습니다.무슨 제안이라도 있으세요?
사용할 수 있어야 합니다.join
, 기본값으로 인덱스에 결합됩니다.원하는 결과가 주어지면 다음을 사용해야 합니다.outer
가입형으로
>>> df1.join(df2, how='outer')
V1 V2
A 1/1/2012 12 15
2/1/2012 14 NaN
3/1/2012 NaN 21
B 1/1/2012 15 24
2/1/2012 8 9
C 1/1/2012 17 NaN
2/1/2012 9 NaN
D 1/1/2012 NaN 7
2/1/2012 NaN 16
시그니처: _.junction(기타, on=Modice, how='left', lsuffix=', rsuffix=', sort=Modice) Docstring: 인덱스 또는 키 열에 다른 DataFrame 열을 결합합니다.목록을 통과하여 인덱스별로 여러 DataFrame 개체를 한 번에 효율적으로 결합합니다.
다음을 사용하여 이 작업을 수행할 수 있습니다.
df_merged = df1.merge(df2, how='outer', left_index=True, right_index=True)
키워드 인수how='outer'
두 프레임의 모든 인덱스를 유지하고 결측 인덱스를 다음과 같이 채웁니다.NaN
.그left_index
그리고.right_index
키워드 인수는 인덱스에 대해 병합을 수행합니다.만약 당신이 모두를 얻는다면NaN
병합을 수행한 후 열에서 다른 문제 해결 단계는 인덱스가 동일한지 확인하는 것입니다.dtypes
.
그merge
위의 코드는 저를 위해 다음과 같은 출력을 생성합니다.
V1 V2
A 2012-01-01 12.0 15.0
2012-02-01 14.0 NaN
2012-03-01 NaN 21.0
B 2012-01-01 15.0 24.0
2012-02-01 8.0 9.0
C 2012-01-01 17.0 NaN
2012-02-01 9.0 NaN
D 2012-01-01 NaN 7.0
2012-02-01 NaN 16.0
수평으로 연결할 수도 있습니다.부터concat
인덱스와 일치하며 기본적으로 외부 조인을 수행하며, 단순히 전달합니다.axis=1
연결이 수평 충분함을 지정하는 인수입니다.
joined_df = pd.concat([df1, df2], axis=1)
의 장점concat
위에merge
그리고.join
1 데이터 프레임 목록을 통과하여 많은 프레임을 한 번에 연결할 수 있습니다.
joined_df = pd.concat([df1, df2, df1, df2], axis=1)
1 할 수 있습니다.join
그러나 중복되는 컬럼 이름이 있다면, 그것들은 그 전에 처리되어야 합니다.join
전화를 걸지만, 전화를 건다concat
,그건 중요하지 않아.
언급URL : https://stackoverflow.com/questions/36538780/merging-dataframes-on-index-with-pandas
'IT' 카테고리의 다른 글
숫자가 어떤 종류의 int인지(core 또는 numpy, signed 여부) 어떻게 판단합니까? (0) | 2023.09.10 |
---|---|
스위치 문에서 "defau4t"가 합법적인 이유는 무엇입니까? (0) | 2023.09.10 |
AWS ECR에 대한 도커 푸시가 즉시 중단되고 시간 초과됨 (0) | 2023.09.05 |
iOS 11에서 위치 서비스가 작동하지 않음 (0) | 2023.09.05 |
mysql에 비해 npm mariasql의 이점 (0) | 2023.09.05 |