如何在xlsx文件中获取当前行并将其分割为前一个?

我正在使用这个class来写入xlsx文件中的统计信息:

 class DictWriter: def __init__(self, workbook, worksheet, fieldnames): self.workbook = workbook self.worksheet = worksheet self.fieldnames = fieldnames self.nrow = 1 def writerow(self, d, condition=0): for k in d: ncol = self.fieldnames.index(k) self.worksheet.write(self.nrow, ncol, d[k]) self.nrow += 1 def writeheader(self): for ncol, fieldname in enumerate(self.fieldnames): self.worksheet.write(0, ncol, fieldname) 

并以这种方式使用它:

 def file_generator(): link = "http://linkforexample.com/api/getSomething" client = requests.get(link) response = client.json()['response'] if response['httpStatus'] == 200: workbook = xlsxwriter.Workbook('Statistics.xlsx', {'strings_to_numbers': True}) worksheet = workbook.add_worksheet() data_table = response['data']['data'] fieldnames = ["Date", "Advertiser", "Clicks", "Conversions", "Cost", "Revenue", "Profit"] writer = DictWriter(workbook, worksheet, fieldnames) writer.writeheader() for d in data_table: warning = (float(real_profit)/float(d['Stat']['revenue']))*100 row_dict = {"Date": d['Stat']['date'], "Advertiser": d['Advertiser']['company'], "Clicks": d['Stat']['clicks'], "Conversions": d['Stat']['conversions'], "Cost": d['Stat']['payout'], "Revenue": d['Stat']['revenue'], "Profit": d['Stat']['profit']} writer.writerow(row_dict) 

如何创build一个n-1值的column ,它将包含X行中当前单元格和前一个单元格中的值之间的差异?

谢谢!

使用pd.read_excel()pd.read_json() ( docs )将您的excel文件/ jsoninput读入pandas.DataFrame ,然后在现有列中创build一个具有第一个不同值的新列( docs ):

 df['new_col'] = df[['existing_col']].diff()