我有两个数据帧.第一个值为grouper,包含每个项目的每月平均销售量.大多数商品都有12个月的价格,因为它们的售价为1年.但打折一年的商品并不是所有月份都有价值.例如:grouper[grouper['Product'] == 'IT984359570']

        Product       Month   Sales Quantity [QTY]
4190    IT984359570   4       35.0
4191    IT984359570   5       208.0
4192    IT984359570   6       208.0
4193    IT984359570   7       233.0
4194    IT984359570   8       191.0

第二个数据帧是一个数据透视表,它显示按产品分类的累计销售额pivot_table.这还考虑了新订单(因此某些单元格中的金额为正).pivot_table[pivot_table['Product'] == 'IT984359570']退货:

Date    Product     2022-05-01  2022-06-01  2022-07-01  2022-08-01  2022-09-01  2022-10-01  2022-11-01
412     IT984359570 -208.0     -416.0       -649.0      -840.0      2019.0      NaN         NaN  

我希望避免删除所有具有NaN值的行.我想用从grouper开始的特定产品的所有条目的平均值填充所有NaN值.对于产品IT984359570:将第412行的所有NA值填入175,如(35+208+208+233+191)/5=175.

我已经try 过用代码来做到这一点

pivot_table = pivot_table.fillna(lambda row: grouper.loc[grouper['Product'] == row['Product'], 'Sales Quantity [QTY]'].mean())

然而,我没有得到想要的输出.我的输出:

Date    Product      2022-05-01  2022-06-01  2022-07-01  2022-08-01  2022-09-01  2022-10-01   2022-11-01    
412     IT984359570  -208.0      -416.0      -649.0      -840.0      2019.0      <function <lambda> at 0x0000023221232320>   <function <lambda> at 0x0000023221232320>

我做错了什么?

编辑:

pivot_table使用.umsum(),因此所需输出如下所示:

Date    Product     2022-05-01  2022-06-01  2022-07-01  2022-08-01  2022-09-01  2022-10-01  2022-11-01
412     IT984359570 -208.0     -416.0       -649.0      -840.0      2019.0      1844.0      1669.0  

推荐答案

只需添加上述内容,我认为添加轴参数就可以完成代码.希望能有所帮助.

pivot_table.apply(lambda x: x.fillna(grouper.loc[grouper['Product'] == x['Product'], 'Sales Quantity'].mean()), axis=1)

Python相关问答推荐

更改matplotlib彩色条的字体并勾选标签?

如何在箱形图中添加绘制线的传奇?

如何在Python中将returns.context. DeliverresContext与Deliverc函数一起使用?

切片包括面具的第一个实例在内的眼镜的最佳方法是什么?

如何使用根据其他值相似的列从列表中获取的中间值填充空NaN数据

如何将一个动态分配的C数组转换为Numpy数组,并在C扩展模块中返回给Python

基于索引值的Pandas DataFrame条件填充

Pre—Commit MyPy无法禁用非错误消息

无法连接到Keycloat服务器

将scipy. sparse矩阵直接保存为常规txt文件

如何使用使用来自其他列的值的公式更新一个rabrame列?

具有相同图例 colored颜色 和标签的堆叠子图

Tensorflow tokenizer问题.num_words到底做了什么?

如何使用matplotlib查看并列直方图

浏览超过10k页获取数据,解析:欧洲搜索服务:从欧盟站点收集机会的微小刮刀&

时长超过24小时如何从Excel导入时长数据

在一个数据帧中,我如何才能发现每个行号是否出现在一列列表中?

如何在PYTHON中向单元测试S Side_Effect发送额外参数?

极点:在固定点扩展窗口

如何定义一个将类型与接收该类型的参数的可调用进行映射的字典?