Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 蟒蛇熊猫-日月混搭_Python_Date_Pandas - Fatal编程技术网

Python 蟒蛇熊猫-日月混搭

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

我有一个'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_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过滤器是从索引中删除“秒”,仅此而已。