You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Pandas DataFrame同日期数值除以对应日期的计数值

实现方法

你操作失败主要有两个核心原因:

  • values_df的val字段和count表的count字段都是字符串类型,无法直接做数值除法运算
  • 新增count列时没有按日期字段做关联匹配,导致无法自动填充同日期的count值

可以直接用Pandas的merge左连接实现同日期count值自动匹配,再做除法计算,完整代码如下:

import pandas as pd

# 构造原始数据
values_df = pd.DataFrame({'date': ['2021-08-16', '2021-08-16', '2021-08-16', '2021-08-16', '2021-08-16', '2021-08-16', '2021-08-16', '2021-08-16','2021-08-16', '2021-08-16'], 
                   'val': ['0.38956', '0.733198', '0.1856580', '-0.759235', '0.112378', '0.7436924' , '0.32941900', '0.7423981', '0.71269175', '0.127698146']})
# 这里把count改名为count_df,避免和Python内置count函数冲突
count_df = pd.DataFrame({'date': ['2021-08-16', '2021-08-17', '2021-08-18', '2021-08-19', '2021-08-20', '2021-08-21', '2021-08-22', '2021-08-23','2021-08-24', '2021-08-25'], 
                      'count': ['12', '47', '85', '65', '36', '126' , '75', '85', '175', '63']})

# 1. 转换字符串类型为数值类型
values_df['val'] = values_df['val'].astype(float)
count_df['count'] = count_df['count'].astype(int)

# 2. 按date字段左连接,自动填充同日期的count值
values_df = values_df.merge(count_df, on='date', how='left')

# 3. 执行除法得到最终结果
values_df['val'] = values_df['val'] / values_df['count']

# 不需要count字段可以删除
# values_df.drop(columns=['count'], inplace=True)

如果后续values_df出现count_df里不存在的日期,对应计算结果会返回空值,你可以根据业务需要补充默认值。

内容的提问来源于stack exchange,提问作者Woox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 05:51:02