根据python中的商店id将商店分配给客户
请建议,我试图根据客户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
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