如何将多个(相同类型的)数据框列转换为单个列表或系列

时间:2018-10-17 21:03:25

标签: pandas

假设熊猫数据框的格式为

col0 col1 col2 col3
---------------------
a0   a1   a2   a3
b0   b1   None None
c0   c1   c2   c3

希望能够获得这些列的某些指定选择的列表或熊猫系列。

in: stack(df[['col1', 'col3']])

out: 
a0
a3
b0
c0
c3

(请注意,在此示例中,None值被跳过)。使用stack()进行了尝试,但似乎并不需要。关于如何将数据框列转换为这种形式的任何建议或建议都将受到赞赏(最终希望获得不同值的直方图(通过https://stackoverflow.com/a/28419258/8236733)。

1 个答案:

答案 0 :(得分:2)

您可以使用.unstack()将它们变成MultiIndex版的系列,删除空值,然后仅使用np.array或列表:

In [69]: df[['col1', 'col3']].unstack().dropna().values
Out[69]: array(['a1', 'b1', 'c1', 'a3', 'c3'], dtype=object)

In [70]: df[['col1', 'col3']].unstack().dropna().tolist()
Out[70]: ['a1', 'b1', 'c1', 'a3', 'c3']