简体   繁体   English

我怎样才能实现以下output(python)

[英]how can i achieve the below output (python)

Could you please help me reshape the data as below:您能否帮我重塑数据,如下所示:

input DF输入DF

import pandas as pd
df=pd.DataFrame({'1': [14561,'X store','Sales Quantity',1],
                   '2': [14561,'X store','Net Sales',2],
                   '3': [16534,'Y store','Sales Quantity',2],
                   '4': [16534,'Y store','Net Sales',1]})

I would like to achieve the below op我想实现以下操作

store_code  store_name  sales_total    net_sales_total
14561       X store           1                     2
16534       Y store           2                     1
import numpy as np

df = df.transpose()
df.columns = ['store_code', 'store_name', 'sales', 'value']
df = df.pivot_table(index=['store_code','store_name'], 
               columns = 'sales', 
               values='value', 
               aggfunc = np.sum)

df.columns = ['net_sales_total', 'sales_total']

Output Output

                         net_sales_total    sales_total
store_code  store_name      
14561       X store          2                  1
16534       Y store          1                  2

Just notice that store_code and store_name in this case are multi index DataFrame's请注意,在这种情况下, store_codestore_namemulti index DataFrame 的

df.unique and transpose df.unique 和转置

df=df.transpose()
for i in df.columns:
    print(df[i].unique())
df = df.transpose()
print('store_code' + str(df[0].unique()))
print('store_name' + str(df[1].unique()))
print('sales_total' + str(df[2].unique()))
print('net_sales_total' + str(df[3].unique()))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM