Python 根据日期、周、月获取平均数据

Python 根据日期、周、月获取平均数据,python,pandas,numpy,Python,Pandas,Numpy,我有一个数据集,其中包括工厂工人三年的产出数据。现在我想得到基于日期、周、月的平均输出。问题是日期格式类似于%d.%m.%Y(日-月-年)。我的问题是如何在获得预期输出的同时保持日期格式不变 我的数据集是这样的(每天都有很多值。) 我收到的错误消息如下:时间数据“2017-01-01”与格式“%d.%m.%Y”(匹配)不匹配。仅供参考,当我读取数据集时,我的代码是这样的 df['date'] = pd.to_datetime(df['date'],format='%d.%m.%Y').dt.da

我有一个数据集,其中包括工厂工人三年的产出数据。现在我想得到基于日期、周、月的平均输出。问题是日期格式类似于%d.%m.%Y(日-月-年)。我的问题是如何在获得预期输出的同时保持日期格式不变

我的数据集是这样的(每天都有很多值。)

我收到的错误消息如下:时间数据“2017-01-01”与格式“%d.%m.%Y”(匹配)不匹配。仅供参考,当我读取数据集时,我的代码是这样的

df['date'] = pd.to_datetime(df['date'],format='%d.%m.%Y').dt.date
df.groupby(['date'],as_index=False).mean()

我尝试通过谷歌搜索不同的解决方案来解决这个问题。但我不能得到预期的结果。输出完全混淆了日期和月份。2017年1月2日(2017年1月2日)被视为2017年2月1日。我如何解决?谢谢大家!

您的代码看起来不错,事实上至少在前四条数据记录中运行良好。这里的问题是日期格式与您报告的错误不一致。正如其他人指出的那样,让熊猫帮你找出格式可以解决问题,即
df[“date”]=pd.to_datetime(df[“date”])
。但我只是觉得这有点棘手或危险。我建议您在对日期格式进行任何分析之前,使用Python中的字符串操作统一日期格式。希望这能有所帮助。

您的代码看起来不错,事实上至少在前四条数据记录中运行良好。这里的问题是日期格式与您报告的错误不一致。正如其他人指出的那样,让熊猫帮你找出格式可以解决问题,即
df[“date”]=pd.to_datetime(df[“date”])
。但我只是觉得这有点棘手或危险。我建议您在对日期格式进行任何分析之前,使用Python中的字符串操作统一日期格式。希望这能有所帮助。

%d
%m
@WillemVanOnsem互换您的意思是将其更改为月、日、年?原始数据集的格式为date.month.year。请尝试:
df[“date”]=pd.to_datetime(df[“date”])
,然后让
pandas
查找you@GrzegorzSkibinski我确实按照你的建议做了。它是这样打印出来的:2017-01-01,然后2017年1月2日显示为2017-02-01,2017年1月3日显示为2017-03-01交换
%d
%m
@WillemVanOnsem您的意思是将其更改为月、日、年?原始数据集的格式为date.month.year。请尝试:
df[“date”]=pd.to_datetime(df[“date”])
,然后让
pandas
查找you@GrzegorzSkibinski我确实按照你的建议做了。它是这样打印出来的:2017-01-01,然后2017年1月2日显示为2017-02-01,2017年1月3日显示为2017-03-01谢谢Fei Yao我想我需要更多提示:)嗨@smoothy你能提供一个数据样本吗?我不能只对上面列出的数据做更多的事情。谢谢费尧我想我需要更多的提示:)嗨@smoothy你能提供一个数据样本吗?仅凭上面列出的数据,我无法做得更多。
df['date'] = pd.to_datetime(df['date'],format='%d.%m.%Y').dt.date
df.groupby(['date'],as_index=False).mean()