Python 按行值循环次数
我的cust_有效Csv文件如下所示Python 按行值循环次数,python,pandas,Python,Pandas,我的cust_有效Csv文件如下所示 Territory NoOfCustomer D00060 10 D00061 20 D00065 70 D00067 90 我必须根据NoOfCustomer的数量创建一个唯一的Id,比如如果NoOfCustomer问题是您想如何存储这些Id有点不清楚,但是如果您想将它们放在同一行中,您可以这样做: def f(x): return [str(uuid.uuid4()) for i in range(10)]
Territory NoOfCustomer
D00060 10
D00061 20
D00065 70
D00067 90
我必须根据NoOfCustomer的数量创建一个唯一的Id,比如如果NoOfCustomer问题是您想如何存储这些Id有点不清楚,但是如果您想将它们放在同一行中,您可以这样做:
def f(x):
return [str(uuid.uuid4()) for i in range(10)]
df = pd.DataFrame({"Territory": ['D60','D61','D65'], 'NoC': [10,20,70] })
df["Ids"] = df[df['NoC'] <=50].apply(f,axis =1)
df = pd.merge(df[['NoC','Territory']],df['Ids'].str.split(',',expand=True),left_index=True,right_index=True)
df = pd.melt(df,id_vars = ['NoC','Territory']).sort_values(['Territory','variable'])
这将给一行一个唯一的id。请注意,
low\u density
是一个布尔掩码数组。我想你想要这个:low_dense=df[df['NoOfCustomer']我已经添加了你需要的@PradeepKumar
for idx, item in df[low_dense].iterrows():
???
Territory NoOfCustomers UniqueID
D00060 10 0001AB9BHBHB
D00060 10 0001AB8HHJJL
D00060 10 0001AB7JHJHJ
D00060 10 0001AB9EWGHJ
D00060 10 0001AB0JIJKJ
def f(x):
return [str(uuid.uuid4()) for i in range(10)]
df = pd.DataFrame({"Territory": ['D60','D61','D65'], 'NoC': [10,20,70] })
df["Ids"] = df[df['NoC'] <=50].apply(f,axis =1)
df = pd.merge(df[['NoC','Territory']],df['Ids'].str.split(',',expand=True),left_index=True,right_index=True)
df = pd.melt(df,id_vars = ['NoC','Territory']).sort_values(['Territory','variable'])