У меня есть кадр данных, как показано ниже:
id, dt, value
id1,2018-08-02 09:19:37, 2
id1,2018-08-02 09:19:47, 3
id1,2018-08-02 09:19:57, 6
......
id1,2018-08-03 04:49:27, 2
id1,2018-08-03 04:49:37, 4
id1,2018-08-03 04:49:47, 5
1) с print(type(df))
показывает, что это pandas.core.frame.DataFrame
2) с print("df.dtypes =",df.dtypes)
,Я получаю:
id object
dt datetime64[ns]
value int32
3) Затем я делаю следующее:
df.value = df.value.astype(float)
df.time = pd.to_datetime(df.dt)
sub_df = df[["dt", "value"]]
print("type(sub_df) ", type(sub_df))
`print("sub_df.dtypes", sub_df.dtypes)`,
Получаю
<class 'pandas.core.frame.DataFrame'>
dt datetime64[ns]
value float64
dtype: object
4) Затем
df_grouped_by_day = df.groupby(sub_df.dt.dt.date).value.mean()
print("type(df_grouped_by_day) ",type(df_grouped_by_day))
print("df_grouped_by_day ", df_grouped_by_day.dtypes)
получить
<class 'pandas.core.series.Series'>
float64
5) Наконец, я делаю
df_grouped_by_day["value"] = df_grouped_by_day["value"].astype(float) - df_grouped_by_day["value"].astype(float).shift(1)
Здесь я получил ошибку TypeError: 'str' object cannot be interpreted as an integer
Пожалуйста, не могли бы вы помочь, где я делаюнеправильно?Большое спасибо.