gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 10:49:17 24 4
gpt4 key购买 nike

我是 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com