【发布时间】:2021-09-08 23:19:29
【问题描述】:
我有一个包含电子商务面板数据的数据框。 它有订单和退货混合在一起。 每行都有 orderID - 对于正常订单和客户返回的相应退货,它是相同的编号。
我的数据如下所示:
| orderID | Shop | Revenue | Note |
|---|---|---|---|
| 44 | 0 | -32 | Return |
| 45 | 0 | -100 | Return |
| 44 | 1 | 14 | |
| 45 | 3 | 20 | Something else |
| 46 | 2 | 50 | |
| 47 | 1 | 80 | Something |
| 48 | 2 | 222 |
对于每个退货,我想找到与原始订单对应的“商店”列值。 例如:'orderID' == 44 出现两次:一次作为退货('Shop' == 0)和一次作为正常订单('Shop' == 1)。 我想将所有 0 值替换为 'Shop' 列与早期订单中的值
我想要的输出如下所示:
| orderID | Shop | Revenue | Note |
|---|---|---|---|
| 44 | 1 | -32 | Return |
| 45 | 3 | -100 | Return |
| 44 | 1 | 14 | |
| 45 | 3 | 20 | Something else |
| 46 | 2 | 50 | |
| 47 | 1 | 80 | Something |
| 48 | 2 | 222 |
我知道如何在 Google 表格中执行此操作(首先我过滤表删除 'Shop'==0 值,然后我在这个过滤后的数组中查找数字)
我知道如何使用 Pandas 过滤此表,但我不知道如何编写。
我假设我需要先编写一个临时列,在其中存储两种类型的值 - 用于普通订单(刚刚复制)和用于退货。
原始数据框为 1 000 000+ 行
我的 .csv 数据可在此处获得: https://docs.google.com/spreadsheets/d/e/2PACX-1vQAJ4tMc_Bcvv-4FsUy3E7sG0m9hm-nLTVLj-LwlSEns-YJ1pbq6gSKp5mj5lZqRI2EgHOsOutwnn1I/pub?gid=0&single=true&output=csv
感谢您的建议!
【问题讨论】: