如何在熊猫中有条件地从不同的列中进行选择

时间:2013-11-15 11:30:32

标签: python pandas

我有一个类似于Nx5的pandas DataFrame

['','','A','','']
['','C','','','']
['','A','','','']
['','','','T','']
.
.
.

我想将其转换为Nx1形状获取非空值

['A']
['C']
['A']
['T']
.
.
.

怎么办呢?

1 个答案:

答案 0 :(得分:2)

您可以为每一行致电"".join

df.apply("".join, axis=1)

如果您不确定每一行只有一个非空值,则以下方法更好:

import pandas as pd

df = pd.DataFrame(
    [['','','A','',''],
    ['','C','','',''],
    ['','A','','',''],
    ['','','','T','']]
)

s = df.stack()
print s[s!=""]

输出:

0  2    A
1  1    C
2  1    A
3  3    T
dtype: object

对于多列:

r = s[s!=""]
r.groupby(level=0).apply(pd.DataFrame.reset_index, drop=True).unstack()