У меня есть фрейм данных (df):
date O_3 NO_2 SO_2 PM10 PM25 CO Label
0 2001-01-01 01:00:00 7.86 67.120003 26.459999 32.349998 12.505127 0.45 2.0
1 2001-01-01 02:00:00 7.21 70.620003 20.879999 40.709999 12.505127 0.48 2.0
2 2001-01-01 03:00:00 7.11 72.629997 21.580000 50.209999 12.505127 0.41 2.0
3 2001-01-01 04:00:00 7.14 75.029999 19.270000 54.880001 12.505127 0.51 2.0
4 2001-01-01 05:00:00 8.46 66.589996 13.640000 42.340000 12.505127 0.19 2.0
... ... ... ... ... ... ... ... ...
139603 2018-04-30 20:00:00 63.00 58.000000 4.000000 2.000000 2.000000 0.30 1.0
139604 2018-04-30 21:00:00 49.00 65.000000 4.000000 5.000000 4.000000 0.30 2.0
139605 2018-04-30 22:00:00 49.00 58.000000 4.000000 5.000000 3.000000 0.30 2.0
139606 2018-04-30 23:00:00 48.00 52.000000 4.000000 7.000000 7.000000 0.30 2.0
139607 2018-05-01 00:00:00 52.00 43.000000 4.000000 6.000000 4.000000 0.30 1.0
Я хочу знать изменчивость значений 'Label', поэтому я:
# Variability of 'Labels' values
reshape_df['Label'].value_counts()
и получаю:
2.0 80435
1.0 39393
3.0 15045
4.0 3295
5.0 1440
Name: Label, dtype: int64
Я добавляю новый столбец, чтобы увидеть имя столбца максимального значения в каждой строке:
# Create column with max pollutant name
reshape_df['Max_pollutant'] = reshape_df.eq(reshape_df.max(1), axis=0).dot(reshape_df.columns)
и получаю:
date O_3 NO_2 SO_2 PM10 PM25 CO Label Max_pollutant
0 2001-01-01 01:00:00 7.86 67.120003 26.459999 32.349998 12.505127 0.45 2.0 NO_2
1 2001-01-01 02:00:00 7.21 70.620003 20.879999 40.709999 12.505127 0.48 2.0 NO_2
2 2001-01-01 03:00:00 7.11 72.629997 21.580000 50.209999 12.505127 0.41 2.0 NO_2
3 2001-01-01 04:00:00 7.14 75.029999 19.270000 54.880001 12.505127 0.51 2.0 NO_2
4 2001-01-01 05:00:00 8.46 66.589996 13.640000 42.340000 12.505127 0.19 2.0 NO_2
... ... ... ... ... ... ... ... ... ...
139603 2018-04-30 20:00:00 63.00 58.000000 4.000000 2.000000 2.000000 0.30 1.0 O_3
139604 2018-04-30 21:00:00 49.00 65.000000 4.000000 5.000000 4.000000 0.30 2.0 NO_2
139605 2018-04-30 22:00:00 49.00 58.000000 4.000000 5.000000 3.000000 0.30 2.0 NO_2
139606 2018-04-30 23:00:00 48.00 52.000000 4.000000 7.000000 7.000000 0.30 2.0 NO_2
139607 2018-05-01 00:00:00 52.00 43.000000 4.000000 6.000000 4.000000 0.30 1.0 O_3
Если я проверить изменчивость 'Max_pollutant':
# Variability of 'Max_pollutant' names
reshape_df['Max_pollutant'].value_counts()
Я получаю следующий вывод:
NO_2 91155
O_3 43166
PM10 4760
O_3NO_2 417
NO_2PM10 48
SO_2 23
O_3PM10 22
PM25 15
O_3NO_2PM10 2
Name: Max_pollutant, dtype: int64
Я не совсем понимаю значения счетчиков, где появляются два или более загрязнителей. Например, «O_3NO_2» = 417, означает ли это, что максимальное значение для O_3 совпадает с NO_2?
Как можно распечатать эти строки, в частности, в oprder, чтобы увидеть показания каждого загрязнителя?