【发布时间】:2016-10-05 14:42:16
【问题描述】:
我有一个零和一的数据框。我想将每一列视为其值是整数的二进制表示。进行这种转换的最简单方法是什么?
我想要这个:
df = pd.DataFrame([[1, 0, 1], [1, 1, 0], [0, 1, 1], [0, 0, 1]])
print df
0 1 2
0 1 0 1
1 1 1 0
2 0 1 1
3 0 0 1
转换为:
0 12
1 6
2 11
dtype: int64
尽可能高效。
【问题讨论】:
-
将每列乘以 2 的相关幂,然后将结果列相加?
-
@Evert 是的,我也刚刚想到。使用我指定的索引很方便。
-
我发现如果您先转置数据集,这会更有意义:您现在正在“求和”每一列中的值,但最终结果显示的行只有一个数字;我曾期望有一个数字的列。转置时,很容易跨列求和,而不是跨行求和。
标签: python numpy pandas binary integer