如何将n列合并到Pandas中的1行

时间:2016-12-15 17:47:14

标签: python pandas

我有一个包含~40列和超过150K行的DataFrame,我想将它合并到一列中。 DataFrame在整个地方都有NaN个值。

以下是df的示例:

d = {'A' : pd.Series([np.nan, 5., 3.], index=[0,1,2]),
 'B' : pd.Series([np.nan, 2., np.nan], index=[0,1,2]),
 'C' : pd.Series([1.,np.nan, 4.], index=[0,1,2])}
df = pd.DataFrame(d)

     A    B    C
0  NaN  NaN  1.0
1  5.0  2.0  NaN
2  3.0  NaN  4.0

我希望生成的df包含所有列中的所有值,但只包含一列。行可以在多个列中具有多个值,因此我需要一种方法来保持它们全部如此:

e = {'ABC' : pd.Series([1.,5.,2.,3.,4.], index=[0,1,2,3,4])}
df1 = pd.DataFrame(e)
   ABC
0  1.0
1  5.0
2  2.0
3  3.0
4  4.0

列名称都不同,所以我无法加入,合并或连接它们。

提前致谢!

1 个答案:

答案 0 :(得分:1)

也许stack似乎是一个很好的选择,默认会自动删除所有NaNs只留下有限的条目:

pd.DataFrame({'ABC': df.stack().values})

enter image description here