【发布时间】:2021-12-31 11:15:04
【问题描述】:
fillna() 方法有问题。这是我的示例 df,它表示商店中的商品数量。我想填写所有 NaN。如果有 NaN,我想用前一天的值填充它,或者如果它是 NaN,那么从第二天开始(相同的产品,相同的商店)。如果特定产品和商店的所有天数都是 NaNs,那么我想用 0 填充它。我正在寻找最好的 pandas 方法,我对循环有一些想法,但它看起来不太好。
我的 df:
day shop product quantity
0 1 shop_A apples 3.0
1 2 shop_A apples NaN
2 3 shop_A apples 1.0
3 1 shop_A bananas NaN
4 2 shop_A bananas NaN
5 3 shop_A bananas NaN
6 1 shop_B apples NaN
7 2 shop_B apples NaN
8 3 shop_B apples 2.0
9 1 shop_B bananas NaN
10 2 shop_B bananas 4.0
11 3 shop_B bananas 2.0
预期 df:
day shop product quantity
0 1 shop_A apples 3.0
1 2 shop_A apples 3.0
2 3 shop_A apples 1.0
3 1 shop_A bananas 0.0
4 2 shop_A bananas 0.0
5 3 shop_A bananas 0.0
6 1 shop_B apples 2.0
7 2 shop_B apples 2.0
8 3 shop_B apples 2.0
9 1 shop_B bananas 4.0
10 2 shop_B bananas 4.0
11 3 shop_B bananas 2.0
我也试过fillna(limit=3),但这不是我要找的。p>
【问题讨论】:
标签: python pandas dataframe nan fillna