我有一个如下所示的数据框:
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)
我该如何对数据框按列进行缩减?
目前我只是将所有向量放在列表中并进行缩减,但这可能不是最优雅的方法:
gene_vectors = [df[v] for v in df]
print(reduce(logical_or, gene_vectors))
有其他的选择吗?
df.apply(lambda x: reduce(np.logical_or, x))
这样的吗? - EdChumapply
函数会依次对每一列调用该函数(因为axis=0
是默认参数值)。 - EdChumaxis=1
在这里表示按行操作。 - EdChum