我的代码似乎不明白有a年。该代码在非leap年数据上正常工作。我遇到的另一个问题是,当我打印数据时,将年份设置为1900,而不是实际年份。
def processing(chunk): enter code here
being read in (by chunksize)
chunk['Date'] = pd.to_datetime(chunk['Date'], format='%Y-%m-%d')
chunk['Year'] = chunk['Date'].dt.year.rename('Year') #creates a new
column with the year
chunk['Month'] = chunk['Date'].dt.month.rename('Month') #new column
with month
chunk['Day'] = chunk['Date'].dt.day.rename('Day') #new column with day
chunk.drop('Date', 1, inplace=True)
return;
df = pd.read_csv('NLDN_CONUS_flash_and_cloud_2012_dT4KMG.txt',
delim_whitespace=True,
names=["Date", "Time", "Latitude", "Longitude", "Current", "Multi",
"Type"], chunksize=2000000, nrows=2000000)
chunk_list = []
for chunk in df:
chunk_list.append(chunk)
df_concat = pd.concat(chunk_list)
df_concat['Date'] = pd.to_datetime(df_concat['Date'], format='%Y-%m-%d')
df_concat['month-day'] = df_concat['Date'].dt.strftime('%m-%d')
df_concat['Datetime'] = df_concat['month-day'] + ' ' + df_concat['Time']
df_concat = df_concat[['Datetime', 'Latitude', 'Longitude', 'Current',
'Multi', 'Type']]
df_concat['Datetime'] = pd.to_datetime(df_concat['Datetime'], format='%m-
%d %H:%M:%S.%f')
df_concat.set_index(df_concat['Datetime'], inplace=True)
print(df_concat)
ValueError:日期超出月份范围
答案 0 :(得分:0)
在
df_concat['Datetime'] = pd.to_datetime(df_concat['Datetime'], format='%m-
%d %H:%M:%S.%f')
您正在转换为日期时间,而没有有关年份的任何信息。因此,熊猫假定默认年份为1900。
我建议使用完整的日期时间作为索引,然后按年或任何需要的日期进行分组。