首页 > 解决方案 > 大熊猫中关于类似线的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 个数据框。这些将跟踪所有销售(这不完全是它自己的数据框)、批发销售、“特殊”客户的销售以及其他客户的销售。

如果有人能指出我正确的方向,或者至少帮助我弄清楚如何在其他地方搜索,我将非常感激!

标签: pythonpandasdataframefillna

解决方案


推荐阅读