循环列列表以求和和和平均值

2024-09-29 00:14:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试开发一个函数,它可以先除法,然后通过检查字符串列表来总结除法的结果。但我总是在求和后得到NaN。请告诉我怎么修。谢谢。你知道吗

targetlist = ['Comp_date_1_180_Sum_add_count',
                'Base_date_1_180_Sum_add_count']
columnlist = ['Sum_add_count']
def div(df, targetlist, columnlist, n):
    for i in targetlist:
        df[i] = df[i].fillna(0)
        df[i + "_daily_avg"] = df[i] / n
        for j in columnlist:
            df[j + "_daily_avg"] = df.loc[:, df.columns.str.contains('|'.join(j + "_daily_avg"))].sum(axis=1)
    return df

Smpale数据

Comp_date_1_180_Sum_add_count Base_date_1_180_Sum_add_count
21898.0                        27542.0
2517.0                         3727.0
8566.0                         8130.0

预期产量

Comp_date_1_180_Sum_add_count_daily_avg | Base_date_1_180_Sum_add_count | Sum_add_count_daily_avg |
Comp_date_1_180_Sum_add_count_daily_avg = Comp_date_1_180_Sum_add_count/ n
Base_date_1_180_Sum_add_count = Base_date_1_180_Sum_add_count/ n
Sum_add_count_daily_avg = Average(Comp_date_1_180_Sum_add_count_daily_avg,Base_date_1_180_Sum_add_count)

Tags: 函数字符串inadddfforbasedate
1条回答
网友
1楼 · 发布于 2024-09-29 00:14:20

只要运行你的代码就行了。 所以我想问题出在你的数据表上。你能试着用它吗

df[i + "_daily_avg"] = df[i].astype(float) / n

而不是

df[i + "_daily_avg"] = df[i] / n

在div()中

相关问题 更多 >