问题描述
我有一个看起来像这样的DataFrame:
product units_sold week
sku 5 W01
sku 3 W02
sku 2 W03
sku 4 W04
sku 6 W05
sku 5 W36
sku 3 W38
sku 2 W39
sku 4 W40
在“星期”中,缺少w37,并且列的排列顺序错误:
我有一个包含所有需要的行和正确顺序的列表:
week_list = ['W36','W37','W38','W39','W40','W01','W02','W03','W04','W05']
所需的输出是:
product units_sold week
sku 5 W36
sku 0 W37
sku 5 W38
sku 2 W39
sku 4 W40
sku 6 W01
sku 3 W02
sku 2 W03
sku 4 W04
sku 6 W05
W37在位且'unit_sold'为0的地方
仅添加一列解决方案是不合适的,因为我有一个很大的DataFrame,并且可能还有其他丢失的行。
我尝试使用pd.sort_values和pd.categorical:
def sorter(column):
reorder = week_list
cat = pd.Categorical(column,categories=reorder,ordered=True)
return pd.Series(cat)
df.sort_values(by="week",key=sorter)
这帮助我设置了正确的顺序,但是仍然缺少'w37',因此问题没有得到解决。
有什么方法可以基于此列表更新DataFrame行值吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)