将唯一行复制到pandas数据帧?

时间:2018-04-05 10:22:33

标签: python pandas

我有一张excel工作簿,其中包含多张包含一些销售数据的工作表。我正在尝试对它们进行排序,以便每个客户都有一个单独的工作表(不同的工作簿),并具有项目详细信息。我创建了一个包含所有客户名称的dictionary

 for name in cust_dict.keys():
     cust_dict[name] = pd.DataFrame(columns=cols)

 for sheet in sheets:
     ws = sales_wb.sheet_by_name(sheet)
     code = ws.cell(4, 0).value #This is the item code
     df = pd.read_excel(sales_wb, engine='xlrd', sheet_name=sheet, skiprows=7)
     df = df.fillna(0)
     count = 0
     for index,row in df.iterrows():
         print('rotation '+str(count))
         count+=1
         if row['Particulars'] != 0 and row['Particulars'] not in no_cust:
             cust_name = row['Particulars']
        # try:

             cust_dict[cust_name] = cust_dict[cust_name].append(df.loc[df['Particulars'] == cust_name],ignore_index=False)
             cust_dict[cust_name] = cust_dict[cust_name].drop_duplicates()
             cust_dict[cust_name]['Particulars'] = code

现在我必须删除重复项,因为Particulars的客户端名称不止一次,因此应对appends数据说x次。

我想避免这种情况,但我似乎无法找到一个好办法。

第二个问题是,由于code更改了所有行的最后一个工作表中的code,但我希望它对于从特定工作表中提取的行保持不变。

我似乎无法找到解决上述问题的方法。

谢谢

0 个答案:

没有答案