首页 > 解决方案 > 由于数据库输入错误,切换到特定类别的列

问题描述

我的数据库有这种类型的错误,因为某些商品类别Snacks与价格错位。我想切换我需要切换列。这是我的数据

Id   Item_category     Price
1    Food              647
2    Drinks            672
3    Food              627
4    Drinks            678
5    679               Snacks
6    742               Snacks
7    Snacks            743 
8    Drinks            689

我需要什么数据库

Id   Item_category     Price
1    Food              647
2    Drinks            672
3    Food              627
4    Drinks            678
5    Snacks            679
6    Snacks            742 
7    Snacks            743 
8    Drinks            689

标签: pythondatabasepandasdataframe

解决方案


用于isnumeric布尔掩码,然后通过 2d numpy 数组交换值:

mask = df['Item_category'].str.isnumeric()
#if necessary check numeric
#mask = pd.to_numeric(df['Item_category'], errors='coerce').notnull()

df.loc[mask, ['Item_category','Price']] = df.loc[mask, ['Price','Item_category']].values
print (df)
   Id Item_category Price
0   1          Food   647
1   2        Drinks   672
2   3          Food   627
3   4        Drinks   678
4   5        Snacks   679
5   6        Snacks   742
6   7        Snacks   743
7   8        Drinks   689

推荐阅读