如何有效地将一个DF的多列附加到另一个DF的一列

时间:2019-09-26 09:46:20

标签: python pandas dataframe

我正在寻找一种有效的方法来将一个Dataframe的多列转换为另一Dataframe的一列。 我设法通过获取原始DF的列名,获取每一列的系列并将这些列一对一地追加到一个空列表中来实现。

column_names = []
column_names.append(df.columns.values.tolist())

for col in df[column_names[0]]:
        for element in series:
            H_list.append(element)

df_new =pd.DataFrame({"NewColumn": column_names})

这感觉真的很无效,我敢打赌,还有一种更Python化的方法可以做到这一点。

1 个答案:

答案 0 :(得分:1)

您可以将DataFrame.stackDataFrame.Transpose结合使用:

以下是示例:

import pandas as pd
df=pd.DataFrame()
df['col1']=[1,2,3,4,5,6]
df['col2']=[7,8,9,10,11,12]
print(df)

   col1  col2
0     1     7
1     2     8
2     3     9
3     4     10
4     5     11
5     6     12

df2=pd.DataFrame()
df2['col1']=[11,12,13,14,15,16,11,12,13,14,15,16]
print(df2)


    col1
0     11
1     12
2     13
3     14
4     15
5     16
6     11
7     12
8     13
9     14
10    15
11    16

my_stack_df=df.T.stack().reset_index(drop=True)
df2['col2']=my_stack_df
print(df2)



    col1  col2
0     11     1
1     12     2
2     13     3
3     14     4
4     15     5
5     16     6
6     11     7
7     12     8
8     13     9
9     14     10
10    15     11
11    16     12