python – 按日期索引的Pandas数据帧
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 按日期索引的Pandas数据帧,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3193字,纯文字阅读大概需要5分钟。
内容图文
所以Python,使用pandas模块似乎是matlab和R的一个很好的选择.这就是我最近切换到这个的原因.那里有资源,我搜索了论坛但找不到类似的东西.如果您有一些教程或其他有用材料的链接,请发布它们.
Wes McKinney有一个关于大熊猫的精彩教程.
http://www.youtube.com/watch?v=w26x-z-BdWQ&list=FLJ5xKwlfj7wg8S_A5SgR6Wg&feature=mh_lolz
在1:10他展示了如何按日期而不是整数索引数据框中的行的示例.
我想做类似的事情.
不同之处在于我有3个变量,Y1,Y2,Y3,每个变量都有一列时间戳,X1,X2,X3.
TestFile.txt:
X1 Y1 X2 Y2 X3 Y3
27/11/2012 11.436 29/11/2012 20.631 4/12/2012 10.209
28/11/2012 11.468 30/11/2012 20.185 5/12/2012 9.973
29/11/2012 11.414 3/12/2012 19.962 6/12/2012 9.736
30/11/2012 11.355 4/12/2012 19.562 7/12/2012 9.509
3/12/2012 11.309 5/12/2012 18.908 10/12/2012 9.259
4/12/2012 11.118 6/12/2012 18.288 11/12/2012 8.109
5/12/2012 10.873 7/12/2012 17.973
6/12/2012 10.582 10/12/2012 17.788
7/12/2012 10.264 11/12/2012 17.554
10/12/2012 9.886
11/12/2012 9.164
我想做4件事:
>将Yi中的数据与Xi中的日期相关联,i = 1,2,3
>按日期索引行
>删除早于4月12日的所有数据,这是Y3的第一个日期
>只能按日期和列访问所有日期
这是一个测试文件,描述了如何读取数据以及如何打印数据.
您可以看到X1已正确解析为pandas日期格式,但不是X2或X3.这是我通过指定尝试做的事情
index_col = [0,2,4]
和
parse_dates = True
TestFile.py:
import pandas as pd
df = pd.read_csv('TestFile.txt',sep='\t', index_col=[0,2,4], parse_dates = True)
print 'pandas version: ', pd.__version__
print df
给出输出:
pandas version: 0.10.0b1
X1 X2 X3 Y1 Y2 Y3
2012-11-27 29/11/2012 4/12/2012 11.436 20.631 10.209
2012-11-28 30/11/2012 5/12/2012 11.468 20.185 9.973
2012-11-29 3/12/2012 6/12/2012 11.414 19.962 9.736
2012-11-30 4/12/2012 7/12/2012 11.355 19.562 9.509
2012-03-12 5/12/2012 10/12/2012 11.309 18.908 9.259
2012-04-12 6/12/2012 11/12/2012 11.118 18.288 8.109
2012-05-12 7/12/2012 None 10.873 17.973 NaN
2012-06-12 10/12/2012 None 10.582 17.788 NaN
2012-07-12 11/12/2012 None 10.264 17.554 NaN
2012-10-12 None None 9.886 NaN NaN
2012-11-12 None None 9.164 NaN NaN
通缉输出:
Y1 Y2 Y3
2012-04-12 11.118 19.562 10.209
2012-05-12 10.873 18.908 9.973
2012-06-12 10.582 18.288 9.736
2012-07-12 10.264 17.973 9.509
2012-10-12 9.886 17.788 9.259
2012-11-12 9.164 17.554 8.109
如果您对如何做到这一点有任何想法,非常感谢您的帮助:)
解决方法:
我认为你的困惑是由于对index_col参数的误解.当您将列列表传递给index_col时,pandas正在尝试创建一个多索引,即一个具有多个列作为索引的数据帧,就像一个多维表.它不是试图通过连接多个列来创建单个索引.
一种可行的策略是使用输入文件中适当的列对创建三个数据帧,然后将它们连接起来.
X1 Y1 X2 Y2 X3 Y3 – > (X1,Y1)的数据帧(X2,Y2)的数据帧(X3,Y3)的数据帧
如果您使用的是Pandas的最新开发版本,或者愿意,可以通过在read_csv()中使用新的parse_cols参数来简化这一过程.或者,您可以读入所有数据,提取所需的三个数据帧,然后将它们连接起来.
最后,您可以使用参数前后的df.truncate来获取所需的DateRange.更简单地说,您可以使用dropna()来省略缺少值的日期.
希望这可以帮助.请告诉我们您正在使用的熊猫版本.
内容总结
以上是互联网集市为您收集整理的python – 按日期索引的Pandas数据帧全部内容,希望文章能够帮你解决python – 按日期索引的Pandas数据帧所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。