列表解析非常好。但某种“......加入......”将会非常有用。谢谢。例如, 。我有一个集合A = {1,0},一个列表B = [[1,1],[2,3]]。我想找到B中的所有行,其中第二个colomu是A中的一个值。或者更通用的一些,我有2个CSV文件。我想找出两个文件中一些殖民地的值匹配的所有行。就像两种文件的“连接”一样。其中一个文件是GB大小。 sqldf is "SQL select on R data frames."Python中是否有一个模块为R执行类似“sqldf”的操作?
7
A
回答
4
,我不知道一个图书馆的做你的要求(但我只在sqldf
文档瞥了一眼),但是没有什么的,你问什么真正需要的库,他们的俏皮话在Python(和你可以当然抽象创建功能的功能而不是简单的列表理解...)
设置A = {1,0},列表B = [[1,1],[2,3]] 。我想找到B中的所有行第二列是值中的一个A.
>>> a = set([1, 0])
>>> b = [[1,1],[2,3]]
>>> [l for l in b if l[1] in a]
[[1, 1]]
我有2个的CSV文件。我想找出两个文件中某列的值匹配的所有行。
>>> f1 = [[1, 2, 3], [4, 5, 6]]
>>> f2 = [[0, 2, 8], [7, 7, 7]]
>>> [tuple_ for tuple_ in zip(f1, f2) if tuple_[0][1] == tuple_[1][1]]
[([1, 2, 3], [0, 2, 8])]
编辑:如果内存使用是一个问题,你应该使用发电机,而不是名单。例如:
>>> zip(f1, f2)
[([1, 2, 3], [0, 2, 8]), ([4, 5, 6], [7, 7, 7])]
但使用发电机:
>>> import itertools as it
>>> gen = it.izip(f1, f2)
>>> gen
<itertools.izip object at 0x1f24ab8>
>>> next(gen)
([1, 2, 3], [0, 2, 8])
>>> next(gen)
([4, 5, 6], [7, 7, 7])
并为数据源:
>>> [line for line in f1]
[[1, 2, 3], [4, 5, 6]]
转化为发电机为:
>>> gen = (line for line in f1)
>>> gen
<generator object <genexpr> at 0x1f159b0>
>>> next(gen)
[1, 2, 3]
>>> next(gen)
[4, 5, 6]
1
之前,你可以做您需要func的sqldf功能'df'的性质,即数据框。 Python有一个可爱的版本:大熊猫:
http://pandas.sourceforge.net/
也许在加入和合并将有助于部分:我建议你开始使用的东西比你的千兆字节的文件,虽然小
http://pandas.sourceforge.net/merging.html
!
5
您可以使用pandasql,它允许SQL样式查询pandas DataFrame。这与sqldf非常相似。
https://github.com/yhat/pandasql/
(满声明,我写的)
编辑:博客中记录的一些功能在这里找到: http://blog.yhathq.com/posts/pandasql-sql-for-pandas-dataframes.html
相关问题
- 1. 是否有可能结束一个像返回类似的Python模块导入?
- 2. 在Scala中执行类似Python的“导入”操作
- 3. R中是否有移位操作?
- 4. 是否有一个与Unix的“which”命令类似的Perl模块?
- 5. 是否可以在一个MySQL查询中执行此操作?
- 6. 是否有WPF控件可以执行CRUD操作域模型?
- 7. 是否有可能在C++类上执行任何GUI操作
- 8. 是否有一个2.5的Python模块提供类似于2.6中的“string”.format()调用?
- 9. 使用模块从python执行操作系统命令
- 10. Python标准库是否包含用于操作URI的模块?
- 11. Scala/java是否有类似Python的StringIO?
- 12. 是否有类似Python的枚举linq
- 13. 是否有执行一个Python脚本,而在交互模式为
- 14. 停止一个操作,而不停止python中的模块
- 15. Python操作系统模块
- 16. 是否有一个模块等价于node.js的Python的argparse?
- 17. PHP - 我如何看到一个类执行的所有操作?
- 18. 如何在Rails中执行类似find_in_batches_by_sql的操作
- 19. 如何在D中执行类似于memcpy的操作D
- 20. 尝试在jsp中执行类似于@Adjust的操作
- 21. Python是否将模块路径中的所有模块导入?
- 22. 我是否安全地在“document.ready()”块之外执行此操作?
- 23. 执行单一操作的OO模式
- 24. 是否有一个用于文本清理的python模块?
- 25. 查找与“sqldf”执行条件连接的“相似”行
- 26. 问题在Python中运行程序(R)以执行操作(执行脚本)
- 27. Backbone Marionette模块作为小工具类似Twitter的飞行
- 28. 如何检查某个类的只有一个元素是否仍然存在,如果有,请执行操作?
- 29. ria服务是否有类似sqlclient的SqlCommand来执行T-SQL?
- 30. JButton是否执行了操作?
你会得到更多/更好的答案,如果你有一个简短的总结“sqldf”为非R用户所做的事情。您想要的功能究竟是哪些部分? – 2011-12-24 22:40:07
同意...另外,一些代码或至少一些伪代码来解释你正在尝试做什么会有所帮助。 – 2011-12-24 22:42:27