重塑,合并,合并熊猫数据帧

时间:2019-08-31 06:37:03

标签: pandas

我有一个如下所示的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

我想要的东西如下:

df_desired

我要做的是用下面的代码重复每一行,条形码的次数:

df_1 = pd.DataFrame(np.repeat(df.iloc[:,:3].values,len(df.iloc[0,:3:]),axis=0))
df_1.columns = df.columns[:3]

并具有以下输出:

df_1

但是我不知道如何到达df_desired。 对不起,我找不到合适的标题。 任何帮助将不胜感激。

1 个答案:

答案 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'])