python - 大熊猫中关于类似线的Fillna
问题描述
我确信这已经在其他地方得到了回答,但我想不出如何准确地表达它。
我正在从订单中构建一个数据框。向我展示 csv 的方式是,如果客户订购了超过 1 件商品,则 csv 中的以下行几乎充满了 NA,除了订单号和商品 sku。
Order Number, Created at, Quantity, Sku, Tags, Bunch of other columns
11111, 1/29/2020, 1, XL-1234, Nan, ...
11112, 1/29/2020, 1, XL-1234, Wholesale, ...
11112, Nan, 2, SM-1254, Nan, ...
11113, 1/29/2020, 1, XL-1234, Nan, ...
df = pd.DataFrame({'Order Number':[11111, 11112, 11112, 11113],
'Created at':['1/29/2020', '1/29/2020', np.nan, '1/29/2020'],
'Quantity':[1,1,2,1],
'Sku':['XL-1234', 'XL-1234', 'SM-1254', 'XL-1234'],
'Tags':[np.nan, 'Wholesale', np.nan, np.nan]
})
print(df)
Order Number Created at Quantity Sku Tags
0 11111 1/29/2020 1 XL-1234 NaN
1 11112 1/29/2020 1 XL-1234 Wholesale
2 11112 NaN 2 SM-1254 NaN
3 11113 1/29/2020 1 XL-1234 NaN
我需要做的是使用已提供的值填充相同订单号的 Nans,例如使用 df.fillna(method='ffill', inplace=True)。
我一直遇到的问题是,它将用最新的 Non-Nan 值填充列的所有 Nans。
Expected Result:
Order Number, Created at, Quantity, Sku, Tags, Bunch of other columns
11111, 1/29/2020, 1, XL-1234, Nan, ...
11112, 1/29/2020, 1, XL-1234, Wholesale, ...
11112, 1/29/2020, 2, SM-1254, Wholesale, ...
11113, 1/29/2020, 1, XL-1234, Nan, ...
df.fillna(method='ffill', inplace=True)
print(df)
Order Number Created at Quantity Sku Tags
0 11111 1/29/2020 1 XL-1234 NaN
1 11112 1/29/2020 1 XL-1234 Wholesale
2 11112 1/29/2020 2 SM-1254 Wholesale
3 11113 1/29/2020 1 XL-1234 Wholesale
我试图做这样的事情:
for unique in df['Order Number'].unique():
df.loc[df['Order Number'] == unique].fillna(method='ffill', inplace=True)
我目前无法使用 df.groupby (我能想到的),因为有些客户没有“批发”标签,但是是我需要自己考虑的特殊客户。
我希望将主数据框拆分为 4 个数据框。这些将跟踪所有销售(这不完全是它自己的数据框)、批发销售、“特殊”客户的销售以及其他客户的销售。
如果有人能指出我正确的方向,或者至少帮助我弄清楚如何在其他地方搜索,我将非常感激!
解决方案
推荐阅读
- vba - VBA Userform:当条目更改时,使用类模块更新具有多个输入的标签中的总值
- node.js - 向信使机器人显示 json url
- swift - 在没有向下转换错误的情况下处理 Swift 4.2 中的错误
- python - 编辑没有for循环的python二维数组?
- android-studio - 多个操作系统(Windows 和 Linux 风格的双启动)之间的通用 gradle 缓存?
- php - 如何以编程方式为 Magento 2 订单应用税后折扣?
- scala - Spark 应用程序缓存的 AWS EMR 错误
- java - 无法在片段中的 RecyclerView 中获取 onClick 事件
- string - 基于字典的模糊匹配
- angularjs - 使用应用控制器从 URL 获取参数