Нет числовых типов для агрегирования при выполнении операции сводной таблицы pandas - PullRequest
0 голосов
/ 12 октября 2018

Я хотел бы преобразовать строки в столбцы для этого информационного кадра и поэтому использую операцию pivot_table в pandas:

Однако, когда я делаю это: df_tmp.pivot_table(index='Date', columns='MeasureLabel', values='Value') Я получаю ошибку: *** pandas.core.base.DataError: No numeric types to aggregate.Типы dtypes следующие:

Date             int64
MeasureLabel    object
Value           object

Столбец Value содержит нечисловые значения и поэтому не может быть преобразован в число.Есть ли способ добиться того, чего я хочу?

          Date                                MeasureLabel             Value
0     1539262800000000000                    Airpressure_Hourly (hPa)  1008.0
1     1539262800000000000                     Cloudcover_Hourly (pct)       1
2     1539262800000000000                         Dewpoint_Hourly (C)    15.2
3     1539262800000000000           GlobalRadiation_HourlySum (Wh/m2)     259
4     1539262800000000000                    HumidityRel_Hourly (pct)      33
5     1539262800000000000           Lightintensity_Hourly (µmol/m²/s)   569.1
6     1539262800000000000                          PAR_Hourly (Wh/m2)   124.5
7     1539262800000000000                            PictoCode_Hourly      13
8     1539262800000000000                       Precip_HourlySum (mm)    0.00
9     1539262800000000000              Precip_RangeMax_HourlySum (mm)     0.0
10    1539262800000000000              Precip_RangeMin_HourlySum (mm)     0.0
11    1539262800000000000              PrecipProbability_Hourly (pct)       0
12    1539262800000000000  Referenceevapotranspiration_HourlySum (mm)     0.2
13    1539262800000000000              ShowerProbability_Hourly (pct)       0
14    1539262800000000000                         SnowFraction_Hourly     0.0
15    1539262800000000000          Soilmoisture_0to10cm_Hourly (vol%)     7.0
16    1539262800000000000          Soiltemperature_0to10cm_Hourly (C)     7.0
17    1539262800000000000               SunshineDuration_Hourly (min)      59
18    1539262800000000000                          TempAir_Hourly (C)    33.7
19    1539262800000000000                    TempAirSurface_Hourly(C)    39.0
20    1539262800000000000        ThunderstormProbability_Hourly (pct)      55
21    1539262800000000000                       Visibility_Hourly (m)   35830
22    1539262800000000000                        WindDirection_Hourly       E

1 Ответ

0 голосов
/ 12 октября 2018

Поскольку вы не хотите выполнять агрегацию, вы можете использовать pd.pivot вместо pd.pivot_table.Примечание pd.pivot является довольно ограничительным, например, допускается только скалярное index / columns, но в этом случае этого достаточно.

df = pd.DataFrame({'Date': ['20180101']*5,
                   'Label': ['A', 'B', 'C', 'D', 'E'],
                   'Value': [1, 2, 3, 4, 'X']})

res = df.pivot(index='Date', columns='Label', values='Value')

print(res)

Label     A  B  C  D  E
Date                   
20180101  1  2  3  4  X
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...