Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根据python中的商店id将商店分配给客户_Python_Python 3.x_Pandas_Numpy - Fatal编程技术网

根据python中的商店id将商店分配给客户

根据python中的商店id将商店分配给客户,python,python-3.x,pandas,numpy,Python,Python 3.x,Pandas,Numpy,请建议,我试图根据客户id将客户映射到商店我想映射可以为该客户建议的商店 客户输入数据: Place u_ID NE NE01 NY NY02 NJ NJ09 Place u_ID store_name NE NE01 test1 NE NE01 test23 NE NE02 test2 NE NE05 test3 NE NE05 test5 NY

请建议,我试图根据客户id将客户映射到商店我想映射可以为该客户建议的商店

客户输入数据:

Place u_ID 
NE     NE01
NY     NY02
NJ     NJ09
Place u_ID    store_name
NE     NE01        test1
NE     NE01        test23
NE     NE02        test2
NE     NE05        test3
NE     NE05        test5
NY     NY02        test
NY     NE01        Eg
NJ     NJ09         tt
存储输入数据:

Place u_ID 
NE     NE01
NY     NY02
NJ     NJ09
Place u_ID    store_name
NE     NE01        test1
NE     NE01        test23
NE     NE02        test2
NE     NE05        test3
NE     NE05        test5
NY     NY02        test
NY     NE01        Eg
NJ     NJ09         tt
我使用的代码:

cus_el= '+'.join(cus_list) if len(cus_list)>1 else cus_list
cus_el=[cus_el] if len(cus_list)>1 else cus_el

store_el= '+'.join(store_list) if len(store_list)>1 else store_list
store_el=[store_el] if len(store_list)>1 else store_el

writer.writerow([place,store_el+cus_el)
但这给了我

Place     u_ID               store_name   
NE     NE01+NE02+NE05        test1+test23+test5+test2+test3        
NY     NY02+NE01              test+Eg               
NJ     NJ09                    tt
预期产量

Place u_ID    store_name1   store_name2    store_name2
NE     NE01        test1     test23            test5
       NE02        test2
       NE05        test3
NY     NY02        test
       NE01         Eg
NJ     NJ09         tt        

我不能评论,所以我在这里给出我的建议

我认为您可以使用pandas groupby函数解决问题的第一部分

例:

至于创建存储列,您可以使用部分功能。

这应该可以做到

import pandas as pd

df = pd.DataFrame({'Place':['NE', 'NE', 'NE', 'NE', 'NE', 'NE', 'NY', 'NY', 'NJ'],
                   'u_ID':['NE01', 'NE01', 'NE01','NE02', 'NE05', 'NE05', 'NY02', 'NY01', 'NJ09'],
                   'store_name':['test1', 'test23', 'test5','test2', 'test3', 'test5', 'test', 'Eg', 'tt']}) # example dataframe

df['key'] = 1
df['key'] = 'store_name' + df.groupby(['u_ID', 'Place'])['key'].transform('cumsum').astype(str) # create column of the form store_nameX where X incidates the Xth store

df = df.set_index(['Place', 'u_ID', 'key']).unstack() # transpose

df.columns = list(df.columns.droplevel(0))

df