[英]How to select from different columns conditionally in pandas
I have an pandas DataFrame like shaped Nx5 我有一个像Nx5形状的熊猫DataFrame
['','','A','','']
['','C','','','']
['','A','','','']
['','','','T','']
.
.
.
I want to convert it to Nx1 shape getting non-empty values 我想将其转换为Nx1形状以获得非空值
['A']
['C']
['A']
['T']
.
.
.
How can that be done? 那怎么办?
You can call "".join
for every row: 您可以为每一行调用"".join
:
df.apply("".join, axis=1)
If you are not sure every row has only one not empty value, following method is better: 如果不确定每一行只有一个非空值,则以下方法更好:
import pandas as pd
df = pd.DataFrame(
[['','','A','',''],
['','C','','',''],
['','A','','',''],
['','','','T','']]
)
s = df.stack()
print s[s!=""]
output: 输出:
0 2 A
1 1 C
2 1 A
3 3 T
dtype: object
for more than one column: 超过一栏:
r = s[s!=""]
r.groupby(level=0).apply(pd.DataFrame.reset_index, drop=True).unstack()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.