我的桌子看起来
origin Ad_Block1. Ad_Block2
YT. Yes. Yes
YT. Yes. Yes
YT. Yes
FB. Yes
FB. Yes
FB. Yes
FB. Yes
我有一个变量,用于存储“是”的计数之和
例如, yes_count = 9
我的预期输出是
Origin Ad_Block_Count
YT. 5
FB. 4
我该如何实现
答案 0 :(得分:0)
以下方法不是专门计算Yes
和/或Yes.
的值,而是简单地计算所有origin
列中每个Ad_Block
的非空条目的数量。如果用缺失值表示“否”,那应该没问题。
假设您的DataFrame命名为df
:
# Replace empty strings with np.nan
df = df.replace('', np.nan)
# "Melt" the DataFrame such that each value in each column
# is moved into its own row.
df.melt(id_vars='origin').groupby('origin')['value'].count()
origin
FB. 4
YT. 5
Name: value, dtype: int64
答案 1 :(得分:0)
您可以堆叠数据框,检查数据是否以array([[0.759178 , 0.40589622, 2.0082092 ]], dtype=float32)
和Yes
开头:
groupby().sum()
输出:
(df.set_index('origin')
.stack().str.startswith('Yes')
.groupby(level=0).sum()
)