2017-02-10 1 views
1

두 개의 데이터 프레임을 같은 수의 열로 이름을 바꾸어 병합하는 방법이 있습니까? concat, mergejoin 메서드는이 작업을 위해 작동하지 않는 것 같습니다. 예를 들어, 나는이 두 가지를 결합하려는이 속으로열 이름이 다른 경우 다른 열 프레임 (동일한 열 크기)에 데이터 프레임을 추가하는 방법

#dataframe1: 
columnA | columnB 
15  | 23 

#dataframe2: 
columnC | columnD 
12  | 29 

:

#dataframe3: 
anyColumnName1 | anyColumnName1 
15    | 23 
12    | 29 

주의를 내 경우 90 열이 있는지 확인하십시오.

답변

2

두 번째 데이터 프레임의 열 이름을 먼저 바꿀 수 있습니다.

그들은 단순히 다음 동일한 수의 열이있는 경우 :

dataframe2.columns = dataframe1.columns

한 다음 CONCAT을.

+0

다른 사람이 큰 열 번호를 다루지 않기 때문에 답변으로 선택합니다. 감사! – renakre

+1

예, 3 개의 정답 중 하나를 선택하는 것이 항상 어렵습니다;) – jezrael

2

당신은 DataFrame 생성자 numpy.concatenate을 사용할 수 있습니다 : 먼저 기반으로 두 번째 dataframe의 열 이름을 변경하여 append을 사용할 수

print (np.concatenate([df1, df2])) 
[[15 23] 
[12 29]] 

df = pd.DataFrame(np.concatenate([df1, df2]), columns=['a','b']) 
print (df) 
    a b 
0 15 23 
1 12 29 
2

.

In [304]: df1.append(df2.rename(columns=dict(zip(df2.columns, df1.columns)))) 
Out[304]: 
    columnA columnB 
0  15  23 
0  12  29 

세부 사항.

In [308]: df1 
Out[308]: 
    columnA columnB 
0  15  23 

In [309]: df2 
Out[309]: 
    columnC columnD 
0  12  29 

In [310]: dict(zip(df2.columns, df1.columns)) 
Out[310]: {'columnC': 'columnA', 'columnD': 'columnB'} 

In [311]: df2.rename(columns=dict(zip(df2.columns, df1.columns))) 
Out[311]: 
    columnA columnB 
0  12  29 
관련 문제