我正在学习Python编程语言,我遇到了一些我不完全理解的东西。 在像这样的方法中: def method(self, blah): def __init__(?): …. …. self做什么? 这是什么意思? 这是强制性的吗? __init__方法做了什么? 为什么有必要? (等等。) 我认为他们可能是面向对象的构造,但是我不太了解。
在学习pandas的同时,我试图在这个问题上解答好几个月。 我使用SAS进行日常工作,这对我们来说是非常棒的支持。 然而,由于其他原因,SAS作为一款软件是非常糟糕的。 有一天,我希望用python和pandas来替代我的SAS,但是我目前缺乏大型数据集的核心外工作stream程。 我不是在谈论需要分布式networking的“大数据”,而是文件太大而不适合内存,但又足够小以适应硬盘驱动器。 我的第一个想法是使用HDFStore在磁盘上保存大型数据集,并只将需要的部分HDFStore到数据HDFStore进行分析。 其他人则提到MongoDB是一个更易于使用的替代scheme。 我的问题是这样的: 什么是一些最佳实践工作stream程来完成以下工作: 将平面文件加载到永久性的磁盘数据库结构中 查询该数据库以检索要送入pandas数据结构的数据 在pandas中操作片断之后更新数据库 真实世界的例子会受到大家的赞赏,尤其是那些使用“大数据”的pandas的人。 编辑 – 我如何工作的例子: 迭代地导入一个大的平面文件并将其存储在一个永久性的磁盘数据库结构中。 这些文件通常太大而不适合内存。 为了使用pandas,我想读取这些数据的子集(通常只有几列),可以适应内存。 我会通过对所选列进行各种操作来创build新列。 然后我必须将这些新列添加到数据库结构中。 我正在试图find执行这些步骤的最佳实践方式。 阅读有关pandas和pytables的链接似乎是追加一个新的列可能是一个问题。 编辑 – 特别回应杰夫的问题: 我正在build立消费者信用风险模型。 数据种类包括电话,SSN和地址特征; 财产价值; 像犯罪logging,破产等贬义的信息…我每天使用的数据集平均有近1000到2000个混合数据types的字段:数字和字符数据的连续variables,名义variables和有序variables。 我很less追加行,但是我执行许多操作来创build新的列。 典型的操作涉及将使用条件逻辑的多个列组合成新的复合列。 例如, if var1 > 2 then newvar = 'A' elif var2 = 4 then newvar = 'B' 。 这些操作的结果是我的数据集中每个logging的新列。 最后,我想将这些新列添加到磁盘数据结构中。 我会重复第2步,用交叉表和描述性统计数据来探索数据,试图find有趣的,直观的关系模型。 一个典型的项目文件通常是大约1GB。 文件被组织成一行,其中包含消费者数据的logging。 […]
Python支持布尔expression式中的短路吗?
我需要一个简单的stringreplace帮助,但我不知道我做错了什么。 我有这个string: hello world 我正在寻找改变hello goodbye ,给我: goodbye world 我正在使用这个代码: X = "hello world" X.replace("hello", "goodbye") 但结果仍然是这样的: hello world 为什么我的代码不工作?
我正在使用Python来parsing日志文件中的条目,并使用Tkinter显示条目内容,迄今为止已经非常出色。 输出是一个标签小部件的网格,但有时会有更多的行比可以显示在屏幕上。 我想添加一个滚动条,看起来应该很容易,但我无法弄清楚。 文档暗示只有List,Textbox,Canvas和Entry小部件支持滚动条界面。 这些似乎都不适合显示小部件的网格。 可以在Canvas小部件中放置任意的小部件,但似乎必须使用绝对坐标,所以我将无法使用网格布局pipe理器? 我试图把部件网格放入一个框架,但似乎并不支持滚动界面,所以这是行不通的: mainframe = Frame(root, yscrollcommand=scrollbar.set) 任何人都可以提出一个方法来绕过这个限 我不希望在PyQt中重写,并增加我的可执行文件的大小,只是添加一个滚动条!
我想要从同一目录中的另一个文件导入一个函数。 有时它适用于from .mymodule import myfunction但我有时得到一个: SystemError: Parent module '' not loaded, cannot perform relative import 有时它可以from mymodule import myfunction ,但有时我也会得到: SystemError: Parent module '' not loaded, cannot perform relative import 我不明白这里的逻辑,我找不到任何解释。 这看起来完全随机。 有人可以向我解释这一切背后的逻辑是什么?
类声明是否有任何理由inheritanceobject ? 我刚刚发现了一些代码,我找不到一个很好的理由。 class MyClass(object): # class code follows…
我想了解多 线程的多处理优势。 我知道全局解释器锁可以解决多处理问题 ,但是还有什么其他的优点,而且可以通过线程来做同样的事情呢?
我有以下的方法: # last_updated is a datetime() object, representing the last time this program ran def time_diff(last_updated): day_period = last_updated.replace(day=last_updated.day+1, hour=1, minute=0, second=0, microsecond=0) delta_time = day_period – last_updated hours = delta_time.seconds // 3600 # make sure a period of 24hrs have passed before shuffling if hours >= 24: print "hello" else: print "do nothing" 我想知道last_updated是否已经过了24小时,我怎样才能在Python做到这一点?
交互式validationtkinter Entry小部件中的内容的推荐技术是什么? 我已经阅读了关于使用validate=True和validatecommand=command ,并且似乎这些function受限于事实,即如果validatecommand命令更新Entry小部件的值,它们将被清除。 鉴于此行为,我们是否应该绑定KeyPress , Cut和Paste事件,并通过这些事件监视/更新Entry元素的值? (和我可能错过的其他相关事件?) 或者,我们应该忘记交互式validation,只有在FocusOut事件上validation?