Python 按行值循环次数

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)]

我的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)]

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