pandas ValueError:无法插入日期,已存在

uttx8gqw  于 2023-03-28  发布在  其他
关注(0)|答案(2)|浏览(422)

我试图导入一个Excel文件,从一个日期列中获取所有日期,并计算从2012年到现在每年的所有日子里我有多少事件。我有这个错误:ValueError(f“无法插入{column},已存在”)ValueError:无法插入日期,已存在

import pandas as pd

file_path = r'C:\Users\xxx\Desktop\yyy.xlsx'
data = pd.read_excel(file_path)
data['Date'] = pd.to_datetime(data['AVVIATO'])
data['Year'] = data['Date'].dt.year
data['DayOfYear'] = data['Date'].dt.dayofyear
df = data.groupby([pd.Grouper(key='Date', freq='D'), pd.Grouper(key='Date', freq='Y')]).size().reset_index(name='counts')
df['CumulativeSum'] = df.groupby('Date')['counts'].cumsum()
df['YearCount'] = df.groupby('Year').cumcount() + 1
export_path = r'C:\Users\adrcl\Desktop\output.xlsx'
df.to_excel(export_path, index=False)
cbeh67ev

cbeh67ev1#

错误行表明您可能在这些代码行中有一个潜在的问题

  • data['Date'] =pd.to_datetime(data['AVVIATO'])
  • data['Year'] = data['Date'].dt.year
  • data['DayOfYear'] = data['Date'].dt.dayofyear

因此,我可以建议的简单解决方案是将excel文件读入
资料
变量,然后创建一些变量,例如
filteredData = pd.DataFrame()
并将所有已更新的字段添加到此字段。例如:“filteredData['Date'] =pd.to_datetime(data['AVVIATO']),etc.无论你想在这里写什么”

bpzcxfmw

bpzcxfmw2#

你不能重置索引并创建两个同名的列'Date'。你必须先重命名索引轴:

df = (data.groupby([pd.Grouper(key='Date', freq='D'), pd.Grouper(key='Date', freq='Y')])
          .size().rename_axis(['Date_D', 'Date_Y'])  # <- HERE
          .reset_index(name='counts'))

输出将是这样的:

>>> df
      Date_D     Date_Y  counts
0 2023-01-01 2023-12-31      24
1 2023-01-02 2023-12-31      24
2 2023-01-03 2023-12-31       1

相关问题