我有一个类似于Nx5的pandas DataFrame
['','','A','','']
['','C','','','']
['','A','','','']
['','','','T','']
.
.
.
我想将其转换为Nx1形状获取非空值
['A']
['C']
['A']
['T']
.
.
.
怎么办呢?
答案 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()