У меня есть следующая команда:
#plot data
ax = plt.gca()
datamax.plot(kind='line',x='Date',y='Data_Value',color='red',ax=ax)
datamin.plot(kind='line',x='Date',y='Data_Value', color='blue',ax=ax)
datamax.plot(kind='scatter',x='Date',y='breakup',color='red',ax=ax)
datamin.plot(kind='scatter',x='Date',y='breakdown', color='blue',ax=ax)
plt.ylabel("Temperature (degrees C)",color='navy')
plt.xlabel("Date",color='navy',labelpad=15)
plt.title('Record high and low temperatures by day (2005-2014)', alpha=1.0,color='brown',y=1.08)
ax.legend(loc='upper center', bbox_to_anchor=(0.5, -0.35),
fancybox=False,labels=['Record high','Record low'])
plt.xticks(rotation=30)
plt.fill_between(range(len(datamax['Date'])), datamax['Data_Value'], datamin['Data_Value'],color='yellow',alpha=0.8)
plt.show()
Однако я продолжаю получать ошибку: KeyError: 'Date'
datamax фрейма данных выглядит следующим образом:
Date ID Element Data_Value datamax breakup
0 2005-01-01 USW00094889 TMAX 156 11.0 NaN
1 2005-01-02 USW00094889 TMAX 139 39.0 NaN
2 2005-01-03 USW00094889 TMAX 133 39.0 NaN
3 2005-01-04 USW00094889 TMAX 39 44.0 44.0
4 2005-01-05 USW00094889 TMAX 33 28.0 NaN
5 2005-01-06 USW00094889 TMAX 0 33.0 33.0
6 2005-01-07 USW00094889 TMAX 6 -67.0 NaN
7 2005-01-08 USW00094889 TMAX 17 -82.0 NaN
8 2005-01-09 USW00094889 TMAX 28 -66.0 NaN
9 2005-01-10 USW00094889 TMAX 44 -71.0 NaN
10 2005-01-11 USW00094889 TMAX 44 6.0 NaN
11 2005-01-12 USW00094889 TMAX 139 6.0 NaN
12 2005-01-13 USW00094889 TMAX 161 0.0 NaN
13 2005-01-14 USW00094889 TMAX 150 -56.0 NaN
14 2005-01-15 USW00094889 TMAX -33 -5.0 -5.0
15 2005-01-16 USW00094889 TMAX -33 6.0 6.0
16 2005-01-17 USW00094889 TMAX -50 78.0 78.0
17 2005-01-18 USW00094889 TMAX -33 83.0 83.0
18 2005-01-19 USW00094889 TMAX 11 67.0 67.0
19 2005-01-20 USW00094889 TMAX 11 39.0 39.0
20 2005-01-21 USW00094889 TMAX -39 22.0 22.0
21 2005-01-22 USW00094889 TMAX -72 -5.0 -5.0
22 2005-01-23 USW00094889 TMAX -44 11.0 11.0
23 2005-01-24 USW00094889 TMAX 11 44.0 44.0
24 2005-01-25 USW00094889 TMAX 28 33.0 33.0
25 2005-01-26 USW00094889 TMAX 28 28.0 NaN
26 2005-01-27 USW00094889 TMAX 6 -5.0 NaN
27 2005-01-28 USW00094889 TMAX -11 6.0 6.0
28 2005-01-29 USW00094889 TMAX 17 39.0 39.0
29 2005-01-30 USW00094889 TMAX 28 28.0 NaN
... ... ... ... ... ... ...
3603 2014-11-13 USW00094889 TMAX 39 NaN NaN
3604 2014-11-14 USW00094889 TMAX 33 NaN NaN
3605 2014-11-15 USW00094889 TMAX 28 NaN NaN
3606 2014-11-16 USW00094889 TMAX 28 NaN NaN
3607 2014-11-17 USW00094889 TMAX 17 NaN NaN
3608 2014-11-18 USW00094889 TMAX 11 NaN NaN
3609 2014-11-19 USW00094889 TMAX 11 NaN NaN
3610 2014-11-20 USW00094889 TMAX 6 NaN NaN
3611 2014-11-21 USW00094889 TMAX -10 NaN NaN
3612 2014-11-22 USW00094889 TMAX 106 NaN NaN
3613 2014-11-23 USW00094889 TMAX 156 NaN NaN
3614 2014-11-24 USW00094889 TMAX 172 NaN NaN
3615 2014-11-25 USW00094889 TMAX 172 NaN NaN
3616 2014-11-26 USW00094889 TMAX 28 NaN NaN
3617 2014-11-27 USW00094889 TMAX 39 NaN NaN
3618 2014-11-28 USW00094889 TMAX 22 NaN NaN
3619 2014-11-29 USW00094889 TMAX 117 NaN NaN
3620 2014-11-30 USW00094889 TMAX 178 NaN NaN
3621 2014-12-01 USW00094889 TMAX 172 NaN NaN
3622 2014-12-02 USW00094889 TMAX 33 NaN NaN
3623 2014-12-03 USW00094889 TMAX 61 NaN NaN
3624 2014-12-04 USW00094889 TMAX 50 NaN NaN
3625 2014-12-05 USW00094889 TMAX 50 NaN NaN
3626 2014-12-06 USW00094889 TMAX 67 NaN NaN
3627 2014-12-07 USW00094889 TMAX 67 NaN NaN
3628 2014-12-08 USW00094889 TMAX 72 NaN NaN
3629 2014-12-09 USW00094889 TMAX 56 NaN NaN
3630 2014-12-10 USW00094889 TMAX 50 NaN NaN
3631 2014-12-11 USW00094889 TMAX 61 NaN NaN
3632 2014-12-12 USW00094889 TMAX 50 NaN NaN
[3631 rows x 6 columns]
Данные фрейма данных выглядят следующим образом:
Date ID Element Data_Value datamin breakdown
0 2005-01-01 USC00200032 TMIN -56 -133.0 -133.0
1 2005-01-02 USC00200032 TMIN -56 -122.0 -122.0
2 2005-01-03 USC00200032 TMIN 0 -67.0 -67.0
3 2005-01-04 USC00200032 TMIN -39 -88.0 -88.0
4 2005-01-05 USC00200032 TMIN -94 -155.0 -155.0
5 2005-01-06 USC00200032 TMIN -106 -182.0 -182.0
6 2005-01-07 USC00200032 TMIN -111 -182.0 -182.0
7 2005-01-08 USC00200032 TMIN -100 -211.0 -211.0
8 2005-01-09 USC00200032 TMIN -67 -206.0 -206.0
9 2005-01-10 USC00200032 TMIN -56 -206.0 -206.0
10 2005-01-11 USC00200032 TMIN -22 -200.0 -200.0
11 2005-01-12 USC00200032 TMIN -17 -117.0 -117.0
12 2005-01-13 USC00200032 TMIN -83 -216.0 -216.0
13 2005-01-14 USC00200032 TMIN -128 -244.0 -244.0
14 2005-01-15 USC00200032 TMIN -144 -200.0 -200.0
15 2005-01-16 USC00200032 TMIN -150 -167.0 -167.0
16 2005-01-17 USC00200032 TMIN -189 -117.0 NaN
17 2005-01-18 USC00200032 TMIN -217 -100.0 NaN
18 2005-01-19 USC00200228 TMIN -300 -17.0 NaN
19 2005-01-20 USC00200032 TMIN -156 -33.0 NaN
20 2005-01-21 USC00200032 TMIN -178 -61.0 NaN
21 2005-01-22 USC00200032 TMIN -178 -67.0 NaN
22 2005-01-23 USC00200032 TMIN -250 -100.0 NaN
23 2005-01-24 USC00200032 TMIN -267 -61.0 NaN
24 2005-01-25 USC00200032 TMIN -228 -88.0 NaN
25 2005-01-26 USC00200032 TMIN -206 -150.0 NaN
26 2005-01-27 USC00200032 TMIN -239 -161.0 NaN
27 2005-01-28 USC00200032 TMIN -250 -172.0 NaN
28 2005-01-29 USC00200032 TMIN -222 -167.0 NaN
29 2005-01-30 USC00200228 TMIN -217 -143.0 NaN
... ... ... ... ... ... ...
3603 2014-11-13 USC00200032 TMIN -71 NaN NaN
3604 2014-11-14 USC00200032 TMIN -78 NaN NaN
3605 2014-11-15 USC00200032 TMIN -94 NaN NaN
3606 2014-11-16 USC00200032 TMIN -72 NaN NaN
3607 2014-11-17 USC00200032 TMIN -106 NaN NaN
3608 2014-11-18 USC00200032 TMIN -144 NaN NaN
3609 2014-11-19 USC00200032 TMIN -128 NaN NaN
3610 2014-11-20 USC00200032 TMIN -122 NaN NaN
3611 2014-11-21 USC00200032 TMIN -182 NaN NaN
3612 2014-11-22 USC00200032 TMIN -172 NaN NaN
3613 2014-11-23 USC00200032 TMIN -100 NaN NaN
3614 2014-11-24 USC00200032 TMIN -5 NaN NaN
3615 2014-11-25 USC00200032 TMIN -33 NaN NaN
3616 2014-11-26 USC00200032 TMIN -67 NaN NaN
3617 2014-11-27 USC00200032 TMIN -82 NaN NaN
3618 2014-11-28 USC00200032 TMIN -133 NaN NaN
3619 2014-11-29 USC00200032 TMIN -106 NaN NaN
3620 2014-11-30 USC00200032 TMIN -56 NaN NaN
3621 2014-12-01 USC00200032 TMIN -88 NaN NaN
3622 2014-12-02 USC00200032 TMIN -99 NaN NaN
3623 2014-12-03 USC00200032 TMIN -71 NaN NaN
3624 2014-12-04 USC00200032 TMIN -77 NaN NaN
3625 2014-12-05 USC00200032 TMIN -61 NaN NaN
3626 2014-12-06 USC00200032 TMIN -50 NaN NaN
3627 2014-12-07 USC00200032 TMIN -78 NaN NaN
3628 2014-12-08 USC00200032 TMIN -78 NaN NaN
3629 2014-12-09 USC00200032 TMIN -39 NaN NaN
3630 2014-12-10 USC00200032 TMIN -72 NaN NaN
3631 2014-12-11 USC00200032 TMIN -88 NaN NaN
3632 2014-12-12 USC00200032 TMIN -78 NaN NaN
[3631 rows x 6 columns]
Я не могу понять, почему я получаю эти ошибки.
Строка, сообщающая мне об ошибке, :
datamax.plot(kind='scatter',x=datamax['Date'],y='breakup',color='red',ax=ax)
Я пытаюсь построить 2 линейных графика и 2 точечных графика на одной фигуре. Однако мой код не позволяет мне это сделать.
Данные взяты отсюда:
#organise data 2005-2014
data = pd.read_csv('data/C2A2_data/BinnedCsvs_d400/fb441e62df2d58994928907a91895ec62c2c42e6cd075c2700843b89.csv')
newdata = data[(data['Date'] >= '2005-01-01') & (data['Date'] <= '2014-12-12')]
#time = pd.date_range('2005-01-01','2014-12-12',freq='D').strftime('%Y-%m-%d')
datamax = newdata[newdata['Element']=='TMAX']
datamin = newdata[newdata['Element']=='TMIN']
datamax = datamax.groupby('Date').max()
datamin = datamin.groupby('Date').min()
datamax = datamax.reset_index()
datamin = datamin.reset_index()
datamax = datamax[~datamax['Date'].str.contains("02-29")]
datamin = datamin[~datamin['Date'].str.contains("02-29")]
#2015 data
breakoutdata = data[(data['Date'] > '2014-12-31')]
datamax2015 = breakoutdata[breakoutdata['Element']=='TMAX']
datamin2015 = breakoutdata[breakoutdata['Element']=='TMIN']
datamax2015 = datamax2015.groupby('Date').max()
datamin2015 = datamin2015.groupby('Date').min()
datamax2015 = datamax2015.reset_index()
datamin2015 = datamin2015.reset_index()
datamax2015 = datamax2015[~datamax2015['Date'].str.contains("02-29")]
datamin2015 = datamin2015[~datamin2015['Date'].str.contains("02-29")]
#filtering out breakthroughs as scatterplot
datamax['datamax'] = datamax2015['Data_Value']
datamin['datamin'] = datamin2015['Data_Value']
datamax['breakup'] = datamax['datamax'][datamax['datamax']>datamax['Data_Value']]
datamin['breakdown'] = datamin['datamin'][datamin['datamin']<datamin['Data_Value']]