ValueError: можно сравнивать только объекты Series с одинаковой меткой: python - PullRequest
1 голос
/ 29 мая 2020

У меня есть следующий код:

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-12')]
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")]

Однако я продолжаю получать сообщение об ошибке: ValueError: могу сравнивать только объекты Series с одинаковой меткой

Я сбит с толку, почему это так.

datamax2015 dataframe выглядит так:

Date           ID Element  Data_Value
0    2014-12-13  USW00094889    TMAX          89
1    2014-12-14  USW00094889    TMAX         139
2    2014-12-15  USW00094889    TMAX         128
3    2014-12-16  USW00094889    TMAX         139
4    2014-12-17  USW00094889    TMAX         122
5    2014-12-18  USW00094889    TMAX          22
6    2014-12-19  USW00094889    TMAX          11
7    2014-12-20  USW00094889    TMAX           6
8    2014-12-21  USW00094889    TMAX          33
9    2014-12-22  USW00094889    TMAX          61
10   2014-12-23  USW00094889    TMAX         122
11   2014-12-24  USW00094889    TMAX         139
12   2014-12-25  USW00094889    TMAX         100
13   2014-12-26  USW00094889    TMAX         100
14   2014-12-27  USW00094889    TMAX         111
15   2014-12-28  USW00094889    TMAX         133
16   2014-12-29  USW00094889    TMAX          89
17   2014-12-30  USW00094889    TMAX          33
18   2014-12-31  USW00094889    TMAX         -28
19   2015-01-01  USW00094889    TMAX          11
20   2015-01-02  USW00094889    TMAX          39
21   2015-01-03  USW00014853    TMAX          39
22   2015-01-04  USW00094889    TMAX          44
23   2015-01-05  USW00094889    TMAX          28
24   2015-01-06  USW00094889    TMAX          33
25   2015-01-07  USW00094889    TMAX         -67
26   2015-01-08  USW00094889    TMAX         -82
27   2015-01-09  USW00094889    TMAX         -66
28   2015-01-10  USW00094889    TMAX         -71
29   2015-01-11  USW00094889    TMAX           6
..          ...          ...     ...         ...
354  2015-12-02  USW00094889    TMAX         100
355  2015-12-03  USW00094889    TMAX          94
356  2015-12-04  USW00094889    TMAX          94
357  2015-12-05  USW00094889    TMAX          94
358  2015-12-06  USW00094889    TMAX         100
359  2015-12-07  USW00094889    TMAX         100
360  2015-12-08  USW00094889    TMAX         100
361  2015-12-09  USW00094889    TMAX         122
362  2015-12-10  USW00094889    TMAX         150
363  2015-12-11  USW00094889    TMAX         156
364  2015-12-12  USW00094889    TMAX         200
365  2015-12-13  USW00094889    TMAX         194
366  2015-12-14  USW00094889    TMAX         183
367  2015-12-15  USW00094889    TMAX         161
368  2015-12-16  USW00094889    TMAX         150
369  2015-12-17  USW00094889    TMAX         122
370  2015-12-18  USW00094889    TMAX          33
371  2015-12-19  USW00094889    TMAX          11
372  2015-12-20  USW00094889    TMAX          83
373  2015-12-21  USW00094889    TMAX         122
374  2015-12-22  USW00014853    TMAX         133
375  2015-12-23  USW00014853    TMAX         183
376  2015-12-24  USW00014853    TMAX         172
377  2015-12-25  USW00094889    TMAX         111
378  2015-12-26  USW00094889    TMAX         117
379  2015-12-27  USW00094889    TMAX          83
380  2015-12-28  USW00094889    TMAX          61
381  2015-12-29  USW00094889    TMAX         100
382  2015-12-30  USW00094889    TMAX          67
383  2015-12-31  USW00094889    TMAX          17

[384 rows x 4 columns]

datamax dataframe выглядит так:

     Date           ID Element  Data_Value
0     2005-01-01  USW00094889    TMAX         156
1     2005-01-02  USW00094889    TMAX         139
2     2005-01-03  USW00094889    TMAX         133
3     2005-01-04  USW00094889    TMAX          39
4     2005-01-05  USW00094889    TMAX          33
5     2005-01-06  USW00094889    TMAX           0
6     2005-01-07  USW00094889    TMAX           6
7     2005-01-08  USW00094889    TMAX          17
8     2005-01-09  USW00094889    TMAX          28
9     2005-01-10  USW00094889    TMAX          44
10    2005-01-11  USW00094889    TMAX          44
11    2005-01-12  USW00094889    TMAX         139
12    2005-01-13  USW00094889    TMAX         161
13    2005-01-14  USW00094889    TMAX         150
14    2005-01-15  USW00094889    TMAX         -33
15    2005-01-16  USW00094889    TMAX         -33
16    2005-01-17  USW00094889    TMAX         -50
17    2005-01-18  USW00094889    TMAX         -33
18    2005-01-19  USW00094889    TMAX          11
19    2005-01-20  USW00094889    TMAX          11
20    2005-01-21  USW00094889    TMAX         -39
21    2005-01-22  USW00094889    TMAX         -72
22    2005-01-23  USW00094889    TMAX         -44
23    2005-01-24  USW00094889    TMAX          11
24    2005-01-25  USW00094889    TMAX          28
25    2005-01-26  USW00094889    TMAX          28
26    2005-01-27  USW00094889    TMAX           6
27    2005-01-28  USW00094889    TMAX         -11
28    2005-01-29  USW00094889    TMAX          17
29    2005-01-30  USW00094889    TMAX          28
...          ...          ...     ...         ...
3603  2014-11-13  USW00094889    TMAX          39
3604  2014-11-14  USW00094889    TMAX          33
3605  2014-11-15  USW00094889    TMAX          28
3606  2014-11-16  USW00094889    TMAX          28
3607  2014-11-17  USW00094889    TMAX          17
3608  2014-11-18  USW00094889    TMAX          11
3609  2014-11-19  USW00094889    TMAX          11
3610  2014-11-20  USW00094889    TMAX           6
3611  2014-11-21  USW00094889    TMAX         -10
3612  2014-11-22  USW00094889    TMAX         106
3613  2014-11-23  USW00094889    TMAX         156
3614  2014-11-24  USW00094889    TMAX         172
3615  2014-11-25  USW00094889    TMAX         172
3616  2014-11-26  USW00094889    TMAX          28
3617  2014-11-27  USW00094889    TMAX          39
3618  2014-11-28  USW00094889    TMAX          22
3619  2014-11-29  USW00094889    TMAX         117
3620  2014-11-30  USW00094889    TMAX         178
3621  2014-12-01  USW00094889    TMAX         172
3622  2014-12-02  USW00094889    TMAX          33
3623  2014-12-03  USW00094889    TMAX          61
3624  2014-12-04  USW00094889    TMAX          50
3625  2014-12-05  USW00094889    TMAX          50
3626  2014-12-06  USW00094889    TMAX          67
3627  2014-12-07  USW00094889    TMAX          67
3628  2014-12-08  USW00094889    TMAX          72
3629  2014-12-09  USW00094889    TMAX          56
3630  2014-12-10  USW00094889    TMAX          50
3631  2014-12-11  USW00094889    TMAX          61
3632  2014-12-12  USW00094889    TMAX          50

[3631 rows x 4 columns]

Столбцы кажутся то же самое в обоих фреймах данных.

Я попытался использовать индексы в обоих этих фреймах данных, но это не сработало.

1 Ответ

0 голосов
/ 29 мая 2020

Проблема здесь в том, что у каждого фрейма данных разное количество строк.

Таким образом, я создал новый столбец в фрейме данных 'datamax' и ' datamin ' соответственно со значениями из столбца ' Data_Value ' кадра данных ' datamax2015 '.

Затем я извлек определенные значения из этого нового фрейма данных, сравнив содержимое столбцов в этом фрейме данных, используя следующие формулы:

datamax['datamax'] = datamax2015['Data_Value']
datamin['datamin'] = datamin2015['Data_Value']
filteredmax = datamax[datamax['datamax']>datamax['Data_Value']]
filteredmin = datamin[datamin['datamin']<datamin['Data_Value']]

Затем эта формула дала мне нет ошибок:

print(filteredmax)
print(filteredmin)



Date           ID Element  Data_Value  datamax
3    2005-01-04  USW00094889    TMAX          39     44.0
5    2005-01-06  USW00094889    TMAX           0     33.0
14   2005-01-15  USW00094889    TMAX         -33     -5.0
15   2005-01-16  USW00094889    TMAX         -33      6.0
16   2005-01-17  USW00094889    TMAX         -50     78.0
17   2005-01-18  USW00094889    TMAX         -33     83.0
18   2005-01-19  USW00094889    TMAX          11     67.0
19   2005-01-20  USW00094889    TMAX          11     39.0
20   2005-01-21  USW00094889    TMAX         -39     22.0
21   2005-01-22  USW00094889    TMAX         -72     -5.0
22   2005-01-23  USW00094889    TMAX         -44     11.0
23   2005-01-24  USW00094889    TMAX          11     44.0
24   2005-01-25  USW00094889    TMAX          28     33.0
27   2005-01-28  USW00094889    TMAX         -11      6.0
28   2005-01-29  USW00094889    TMAX          17     39.0
31   2005-02-01  USW00094889    TMAX          17     39.0
38   2005-02-08  USW00094889    TMAX          67     83.0
39   2005-02-09  USW00094889    TMAX          39     83.0
60   2005-03-02  USW00094889    TMAX         -11     17.0
61   2005-03-03  USW00094889    TMAX          17     44.0
67   2005-03-09  USW00094889    TMAX          -6     94.0
68   2005-03-10  USW00094889    TMAX          61    100.0
69   2005-03-11  USW00094889    TMAX          33    133.0
70   2005-03-12  USW00094889    TMAX          28    128.0
71   2005-03-13  USW00094889    TMAX          39    150.0
72   2005-03-14  USW00094889    TMAX          39    128.0
73   2005-03-15  USW00094889    TMAX          56    139.0
74   2005-03-16  USW00094889    TMAX          78    206.0
75   2005-03-17  USW00094889    TMAX          67    194.0
76   2005-03-18  USW00094889    TMAX          50    117.0
..          ...          ...     ...         ...      ...
333  2005-11-30  USW00094889    TMAX          83    100.0
334  2005-12-01  USW00094889    TMAX          11    111.0
335  2005-12-02  USW00094889    TMAX           0    100.0
336  2005-12-03  USW00094889    TMAX          -6     94.0
337  2005-12-04  USW00094889    TMAX          22     94.0
338  2005-12-05  USW00094889    TMAX          11     94.0
339  2005-12-06  USW00094889    TMAX         -22    100.0
340  2005-12-07  USW00094889    TMAX         -33    100.0
341  2005-12-08  USW00094889    TMAX         -11    100.0
342  2005-12-09  USW00094889    TMAX         -11    122.0
343  2005-12-10  USW00094889    TMAX           0    150.0
344  2005-12-11  USW00014853    TMAX          33    156.0
345  2005-12-12  USW00094889    TMAX          22    200.0
346  2005-12-13  USW00094889    TMAX          -6    194.0
347  2005-12-14  USW00094889    TMAX          11    183.0
348  2005-12-15  USW00094889    TMAX          17    161.0
349  2005-12-16  USW00094889    TMAX          17    150.0
350  2005-12-17  USW00094889    TMAX         -11    122.0
351  2005-12-18  USW00094889    TMAX         -28     33.0
352  2005-12-19  USW00094889    TMAX         -33     11.0
353  2005-12-20  USW00094889    TMAX         -22     83.0
354  2005-12-21  USW00094889    TMAX         -22    122.0
355  2005-12-22  USW00094889    TMAX          28    133.0
356  2005-12-23  USW00094889    TMAX          50    183.0
357  2005-12-24  USW00094889    TMAX          61    172.0
358  2005-12-25  USW00094889    TMAX          61    111.0
359  2005-12-26  USW00094889    TMAX          50    117.0
360  2005-12-27  USW00094889    TMAX          39     83.0
362  2005-12-29  USW00094889    TMAX          56    100.0
363  2005-12-30  USW00094889    TMAX          39     67.0

[171 rows x 5 columns]
           Date           ID Element  Data_Value  datamin
0    2005-01-01  USC00200032    TMIN         -56   -133.0
1    2005-01-02  USC00200032    TMIN         -56   -122.0
2    2005-01-03  USC00200032    TMIN           0    -67.0
3    2005-01-04  USC00200032    TMIN         -39    -88.0
4    2005-01-05  USC00200032    TMIN         -94   -155.0
5    2005-01-06  USC00200032    TMIN        -106   -182.0
6    2005-01-07  USC00200032    TMIN        -111   -182.0
7    2005-01-08  USC00200032    TMIN        -100   -211.0
8    2005-01-09  USC00200032    TMIN         -67   -206.0
9    2005-01-10  USC00200032    TMIN         -56   -206.0
10   2005-01-11  USC00200032    TMIN         -22   -200.0
11   2005-01-12  USC00200032    TMIN         -17   -117.0
12   2005-01-13  USC00200032    TMIN         -83   -216.0
13   2005-01-14  USC00200032    TMIN        -128   -244.0
14   2005-01-15  USC00200032    TMIN        -144   -200.0
15   2005-01-16  USC00200032    TMIN        -150   -167.0
32   2005-02-02  USC00200032    TMIN        -167   -193.0
33   2005-02-03  USC00200032    TMIN        -167   -238.0
34   2005-02-04  USC00200032    TMIN        -156   -211.0
35   2005-02-05  USC00200032    TMIN        -128   -277.0
36   2005-02-06  USC00200032    TMIN         -89   -250.0
37   2005-02-07  USC00200032    TMIN         -56   -122.0
38   2005-02-08  USC00200032    TMIN         -33    -56.0
39   2005-02-09  USC00200032    TMIN         -78   -116.0
40   2005-02-10  USC00200032    TMIN        -111   -171.0
41   2005-02-11  USC00200032    TMIN        -122   -150.0
42   2005-02-12  USC00200032    TMIN         -83   -211.0
43   2005-02-13  USC00200032    TMIN         -56   -266.0
44   2005-02-14  USC00200032    TMIN         -28   -239.0
45   2005-02-15  USC00200032    TMIN         -11   -260.0
..          ...          ...     ...         ...      ...
262  2005-09-20  USC00200032    TMIN          94     39.0
263  2005-09-21  USC00200032    TMIN          78     56.0
264  2005-09-22  USC00200032    TMIN          94     17.0
266  2005-09-24  USC00200032    TMIN         111     56.0
267  2005-09-25  USC00200032    TMIN          94     78.0
275  2005-10-03  USC00200032    TMIN          50     44.0
276  2005-10-04  USC00200032    TMIN         100     61.0
277  2005-10-05  USC00200032    TMIN         100     94.0
282  2005-10-10  USC00200032    TMIN          22      0.0
284  2005-10-12  USC00200032    TMIN          67     28.0
285  2005-10-13  USC00200032    TMIN          83     72.0
286  2005-10-14  USC00200032    TMIN          56    -10.0
287  2005-10-15  USC00200032    TMIN          56    -16.0
288  2005-10-16  USC00200032    TMIN          -6    -10.0
289  2005-10-17  USC00200032    TMIN         -33    -55.0
290  2005-10-18  USC00200032    TMIN         -11    -55.0
291  2005-10-19  USC00200032    TMIN          -6    -61.0
292  2005-10-20  USC00200032    TMIN         -22    -39.0
293  2005-10-21  USC00200032    TMIN           0    -28.0
311  2005-11-08  USC00200032    TMIN         -11    -55.0
312  2005-11-09  USC00200032    TMIN          22    -61.0
313  2005-11-10  USC00200032    TMIN         -39    -44.0
318  2005-11-15  USC00200032    TMIN         -17    -22.0
325  2005-11-22  USC00200032    TMIN         -78   -116.0
331  2005-11-28  USC00200032    TMIN           0    -39.0
332  2005-11-29  USC00200032    TMIN         -39    -93.0
333  2005-11-30  USC00200032    TMIN         -56    -89.0
359  2005-12-26  USC00200032    TMIN         -11    -39.0
361  2005-12-28  USC00200032    TMIN         -28    -39.0
362  2005-12-29  USC00200032    TMIN         -11    -39.0
...