我有一个如下所示的df:
df = pd.DataFrame({"location":["north", "south","north"], "store": ["a","b","c"], "date" : ["02112018","02152018","02182018"], "barcode1":["ok", "low","ok"], "barcode2": ["low","zero","zero"], "barcode3": ["ok","zero","low"]})
我想要的东西如下:
我要做的是用下面的代码重复每一行,条形码的次数:
df_1 = pd.DataFrame(np.repeat(df.iloc[:,:3].values,len(df.iloc[0,:3:]),axis=0))
df_1.columns = df.columns[:3]
并具有以下输出:
但是我不知道如何到达df_desired。 对不起,我找不到合适的标题。 任何帮助将不胜感激。
答案 0 :(得分:1)
您可以使用pd.melt
取消显示数据帧,.sort_values
的{{1}}为您提供所需的行顺序。
store
pd.melt(
df,
id_vars=['location', 'store', 'date'],
var_name='barcode',
value_name='control').sort_values(by=['store'])