pandas DataFrame 中布尔数组的逐行总和
row-wise sum of boolean arrays in pandas DataFrame
给定数据帧 df:
import pandas as pd
df = pd.DataFrame({'A':[np.array([True, False, True, False]),np.array([True, True, False, False])]})
A
0 [True, False, True, False]
1 [True, True, False, False]
如何获得布尔值整数版本的按行求和?例如:
cmd(A) = [2, 1, 1, 0]
什么命令可以做到这一点?
让我们试试
pd.DataFrame(df.A.tolist()).sum().tolist()
[2, 1, 1, 0]
另一种方式(如果不转换为数据框和列表可能会更快):
(df.A.values+0).sum(0)
#[2 1 1 0]
+0
是将boolean转换为int,求和是沿轴0(row-wise)。
给定数据帧 df:
import pandas as pd
df = pd.DataFrame({'A':[np.array([True, False, True, False]),np.array([True, True, False, False])]})
A
0 [True, False, True, False]
1 [True, True, False, False]
如何获得布尔值整数版本的按行求和?例如:
cmd(A) = [2, 1, 1, 0]
什么命令可以做到这一点?
让我们试试
pd.DataFrame(df.A.tolist()).sum().tolist()
[2, 1, 1, 0]
另一种方式(如果不转换为数据框和列表可能会更快):
(df.A.values+0).sum(0)
#[2 1 1 0]
+0
是将boolean转换为int,求和是沿轴0(row-wise)。