我有一个数据帧,如下所示:
try:
from StringIO import StringIO
except ImportError:
from io import StringIO
from functools import reduce
import pandas as pd
from numpy import uint8, logical_or
df = pd.read_table(StringIO("""a b c
1 0 0
1 1 1
0 1 1
1 1 0"""), sep="\s+", dtype=uint8, header=0)
Run Code Online (Sandbox Code Playgroud)
如何逐列减少数据帧?
目前我只是将所有向量放在一个列表中并减少它,但这不是最常用的方法:
gene_vectors = [df[v] for v in df]
print(reduce(logical_or, gene_vectors))
Run Code Online (Sandbox Code Playgroud)
任何替代品?
我相信这是实现这一目标的"pandastic"方式
df.apply(lambda x: reduce(logical_or,x), axis=1)
Run Code Online (Sandbox Code Playgroud)
虽然可能还有其他路线.