Python 蟒蛇熊猫-日月混搭
我有一个'myfile.csv'文件,它有一个'timestamp'列,从 (2015年5月1日11:51:00) 结束于 (2015年5月7日23:22:00) 总时间为9727分钟 “myfile.csv”还有一个名为“a”的列,它是一些数值,每分钟内“a”有多个值,每个值都有一个到最近秒的唯一时间戳 我有如下代码Python 蟒蛇熊猫-日月混搭,python,date,pandas,Python,Date,Pandas,我有一个'myfile.csv'文件,它有一个'timestamp'列,从 (2015年5月1日11:51:00) 结束于 (2015年5月7日23:22:00) 总时间为9727分钟 “myfile.csv”还有一个名为“a”的列,它是一些数值,每分钟内“a”有多个值,每个值都有一个到最近秒的唯一时间戳 我有如下代码 df = pd.read_csv('myfile.csv') df = df.set_index('timestamp') df.index = df.index.to_date
df = pd.read_csv('myfile.csv')
df = df.set_index('timestamp')
df.index = df.index.to_datetime()
df.sort_index(inplace=True)
df = df['A'].resample('1Min').mean()
df.index = (df.index.map(lambda t: t.strftime('%Y-%m-%d %H:%M')))
我的问题是python似乎认为“时间戳”始于
(2015年5月1日11:51:00)
->1月5日
结束于
(2015年5月7日23:22:00)
->7月5日
但真正的“时间戳”是从
5月1日
最后在
5月7日
因此,上面的代码生成了一个包含261332行的数据帧,OMG,而实际上它应该只有9727行
不知怎的,Python把月和日混为一谈,错误地解释了日期,我该如何处理呢?您在问题中包含的日期格式似乎与strftime筛选器不匹配。请查看以修复字符串参数。 在我看来,应该是这样的:
'%d/%m/%Y %H:%M:%S'
csv\u read
中有许多参数可以帮助您将日期从csv直接解析到数据框中。在这里,我们可以设置parse_dates
,使用您想要作为日期的列,然后使用dayfirst
。这默认为false
,因此,假设日期在第一列中,下面的操作应该是您想要的
df = pd.read_csv('myfile.csv', parse_dates=[0], dayfirst=True)
如果dates列不是第一行,只需将
0
更改为列号。这没有任何作用,我的意思是,输出中没有任何变化我仍然得到一个带有261332行的pandas数据帧。你真是个天才!谢谢你,但我肯定不是。韦斯·麦金尼(Wes McKinney)和更广泛的熊猫开发团队(pandas dev team)给出了可靠的解释(因此投票支持答案),但除此之外,还有一个极好的名字@LittleBobbyTables!在这些奇怪和不确定的时刻,我确实尝试了你的建议,但我仍然得到了一个有261332行的熊猫数据帧。我代码中的strftime过滤器是从索引中删除“秒”,仅此而已。