我有一个如下所示的数据帧:
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已就位且“已售出单元”为0
只添加一列的解决方案是不合适的,因为我有一个相当大的数据帧,可能还有其他丢失的行
我尝试使用pd.sort_值和pd.category:
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行值
IIUC只需使用
reindex
:相关问题 更多 >
编程相关推荐