python - 基于 Pandas DataFrame 中的一个或多个参数添加总和的函数

标签 python pandas

我是 Pandas 和 python 的新手。

我的 DataFrame 看起来像这样:

             Search query  Impressions  Clicks     Word
0           iPhone X 2019        10000      50   iPhone
1           iPhone X 2019        10000      50        X
2           iPhone X 2019        10000      50     2019
3            iPhoneX 2019           15      64  iPhoneX
4            iPhoneX 2019           15      64     2019
5               iPhone 11           60      87   iPhone
6               iPhone 11           60      87       11
7              Nokia 3310          444      61    Nokia
8              Nokia 3310          444      61     3310
9   Nokia 3310 best phone            1      30    Nokia
10  Nokia 3310 best phone            1      30     3310
11  Nokia 3310 best phone            1      30     best
12  Nokia 3310 best phone            1      30    phone

我正在尝试编写一个函数来添加 ImpressionsClicks基于 Word柱子。

比如我想知道有多少点击词Nokia有所以我会加起来Clicks第 7 行和第 9 行的值。然后我想知道有多少 Clicks当词是 Nokia3310 .

我试过的:
def f(column, *args):
    #result = df[column].sum() where df['Word'] = args

逻辑是我将传递第一个参数来定义我要计算的列,然后定义一个或多个单词以进行计算。

谢谢你的建议。

最佳答案

这是可能的通过列表,然后按 Series.isin 过滤:

def f(column, v):
    return df.loc[df['Word'].isin(v), column].sum()

print (f('Impressions', ['Nokia']))
445

print (f('Clicks', ['Nokia','3310']))
182

编辑:对于所有值的可能返回总和是可能的链由 |倒置空列表,因为 bool([])返回 False :
def f(column, v=[]):
    return df.loc[df['Word'].isin(v) | (not bool(v)), column].sum()

print (f('Impressions', ['Nokia']))
445

print (f('Impressions'))
31042

关于python - 基于 Pandas DataFrame 中的一个或多个参数添加总和的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59560766/

相关文章:

python - 如何删除链接的开头并在python中添加正斜杠

python - 计算满足条件的连续值的数量(Pandas Dataframe)

python - 如何使用 DataFrame 比较两个 CSV 文件并检索不同的单元格?为什么浮点单元格中会出现这么多小数位?

python - 在 Python 中定义 LibreOffice Calc 自定义函数

python - 为什么我在使用 TensorFlow CLI Debugger 时得到 "_curses.error: cbreak() returned ERR"?

python - 如何设置 sshuttle?

python-3.x - 绘制来自 Pandas Agg 的阴影误差线

python - 在 Python 中包装异常

python - 查找列表的公共(public)元素

python - 计算组出现次数