2016-08-28 3 views
0

4 개의 열이있는 데이터 프레임이 있습니다.동일한 데이터 프레임에 pandas 병합 열

Column1 Column2 Column3 Column4 
0 Item1  Value1  Item2  Value2 
1 Item3  Value3  Item4  Value4 
2 Item5  Value5  Item6  Value6 
3 Item7  Value7  Item8  Value8 
4 Item9  Value9  Item10  Value10 
5 Item11  Value11 Item12  Value12 
6 Item13  Value13 Item14  Value14 

함께 Column1Column3을 결합하는 방법이 있나요? Column2Column4?

Column1 Column2 
0 Item1  Value1 
1 Item2  Value2 
2 Item3  Value3 
3 Item4  Value4 
4 Item5  Value5 
5 Item6  Value6 
6 Item7  Value7 
7 ... 

아래를 얻으려면 내가 append, concatsplit을 가지고 노는 시도했지만 그럴수가 ..

답변

2

좋아 그것을 밖으로 작동하는 것, 어쩌면이 도움이 될 수 있습니다 :

In [571]: df 
Out[571]: 
    Column1 Column2 Column3 Column4 
0 Item1 Value1 Item2 Value2 
1 Item3 Value3 Item4 Value4 
2 Item5 Value5 Item6 Value6 
3 Item7 Value7 Item8 Value8 
4 Item9 Value9 Item10 Value10 
5 Item11 Value11 Item12 Value12 
6 Item13 Value13 Item14 Value14 

In [572]: pd.DataFrame({'Column1': pd.concat([df.Column1, df.Column3]), 'Column2': pd.concat([df.Column2, df.Column4])}).sort_index() 
Out[572]: 
    Column1 Column2 
0 Item1 Value1 
0 Item2 Value2 
1 Item3 Value3 
1 Item4 Value4 
2 Item5 Value5 
2 Item6 Value6 
3 Item7 Value7 
3 Item8 Value8 
4 Item9 Value9 
4 Item10 Value10 
5 Item11 Value11 
5 Item12 Value12 
6 Item13 Value13 
6 Item14 Value14 

에게 당신을 색인을 재설정 할 수도 있습니다.

In [574]: pd.DataFrame({'Column1': pd.concat([df.Column1, df.Column3]), 'Column2': pd.concat([df.Column2, df.Column4])}).sort_index().reset_index(drop=True) 
Out[574]: 
    Column1 Column2 
0 Item1 Value1 
1 Item2 Value2 
2 Item3 Value3 
3 Item4 Value4 
4 Item5 Value5 
5 Item6 Value6 
6 Item7 Value7 
7 Item8 Value8 
8 Item9 Value9 
9 Item10 Value10 
10 Item11 Value11 
11 Item12 Value12 
12 Item13 Value13 
13 Item14 Value14 
+0

흠,이 비록 내 원하는 출력 밤은. 위에서 언급했듯이'column1'과'column3','column2'과'column4'을 결합하려고합니다. 이것은 내가 원하는 것을 내게주지 않는다./ –

+0

@jakewong 나는 대답을 업데이트했다. –

+0

감사합니다. 이것은 그것을 해결하는 것 같다. :) –

1
df.columns = pd.MultiIndex.from_product(
    [['One', 'Two'], ['Column1', 'Column2']]) 
df.stack(0).reset_index(drop=True) 

enter image description here

+0

@MaxU 고마워요. – piRSquared

1

또한 비행에 COLUMN3 및 Column4을 서브 칼럼을 사용하고 이름을 변경하여 별도의 DataFrames과 별개의 두 그룹을 처리 할 수 ​​있습니다 :

>>> df 

    Column1 Column2 Column3 Column4 
0 Item1 Value1 Item2 Value2 
1 Item3 Value3 Item4 Value4 
2 Item5 Value5 Item6 Value6 
3 Item7 Value7 Item8 Value8 
4 Item9 Value9 Item10 Value10 
5 Item11 Value11 Item12 Value12 
6 Item13 Value13 Item14 Value14 

df[['Column1','Column2']].append(df[['Column3','Column4']].rename(columns={'Column3':'Column1','Column4':'Column2'})).sort_index().reset_index(drop=True) 

    Column1 Column2 
0 Item1 Value1 
1 Item2 Value2 
2 Item3 Value3 
3 Item4 Value4 
4 Item5 Value5 
5 Item6 Value6 
6 Item7 Value7 
7 Item8 Value8 
8 Item9 Value9 
9 Item10 Value10 
10 Item11 Value11 
11 Item12 Value12 
12 Item13 Value13 
13 Item14 Value14 
관련 문제