【发布时间】:2020-05-19 03:54:22
【问题描述】:
我正在读取包含宽数据的 CSV,并将其转换为长数据。该数据包含 2020 年全年的每日值。我正在尝试按月汇总数据并求和。这是我尝试过的:
import pandas as pd
df = pd.read_csv('Notebooks/updated_predicted_data.csv', parse_dates=['Unnamed: 0'])
df.rename( columns={'Unnamed: 0':'yyyy_mm_dd'}, inplace=True)
df = df.melt(id_vars=['yyyy_mm_dd'])
df.rename(columns={'variable': 'name'}, inplace=True)
df.rename(columns={'value': 'predicted_value'}, inplace=True)
df['predicted_value'] = df['predicted_value'].str.replace('€', '')
df['predicted_value'] = df['predicted_value'].str.replace(',', '')
df['predicted_value'] = df['predicted_value'].astype(int)
df.dtypes
yyyy_mm_dd datetime64[ns]
name object
predicted_ttv int64
dtype: object
以上所有方法都可以正常工作,当我尝试对数据进行分组时,我遇到了问题:
sum_df = df.groupby(pd.Grouper(freq='M'))
TypeError: 仅对 DatetimeIndex、TimedeltaIndex 或 PeriodIndex 有效,但获得了 'RangeIndex' 的实例
尽管将我的日期列从字符串转换为日期时间并将预测列从字符串转换为 int,但我为什么会收到上述错误?
【问题讨论】:
标签: python-3.x pandas