Python 在同一数据帧中合并列

Python 在同一数据帧中合并列,python,pandas,Python,Pandas,我有4列的数据框 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 Value

我有4列的数据框

    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
有没有办法将
Column1
Column3
组合在一起?和
第2列
第4列
?得到下面的

    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
concat
split
,但似乎无法解决

好吧,也许这会有帮助:

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

好吧,也许这会有帮助:

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


您还可以使用子列并动态重命名列3和列4,将两个不同的分组视为单独的数据帧:

>>> 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

还可以使用子列并动态重命名Column3和Column4,将两个不同的分组视为单独的数据帧:

>>> 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

嗯,这不是我想要的输出。如上所述,我希望将
column1
column3
相结合,将
column2
column4
相结合。这并没有给我想要的:/嗯,这不是我想要的输出。如上所述,我希望将
column1
column3
相结合,将
column2
column4
相结合。这并没有给我想要的:/