Tag: python

删除重复索引的行(Pandas DataFrame和TimeSeries)

我正在阅读一些来自networking的自动化天气数据。 观测每5分钟发生一次,并编入每个气象站的月度文件中。 一旦我完成parsing文件,DataFrame看起来像这样: Sta Precip1hr Precip5min Temp DewPnt WindSpd WindDir AtmPress Date 2001-01-01 00:00:00 KPDX 0 0 4 3 0 0 30.31 2001-01-01 00:05:00 KPDX 0 0 4 3 0 0 30.30 2001-01-01 00:10:00 KPDX 0 0 4 3 4 80 30.30 2001-01-01 00:15:00 KPDX 0 0 3 2 5 90 30.30 2001-01-01 00:20:00 KPDX […]

在Python中的调用者线程中捕获一个线程的exception

一般来说,我对Python和multithreading编程都很陌生。 基本上,我有一个脚本,将文件复制到另一个位置。 我想这将被放置在另一个线程,所以我可以输出….指示该脚本仍在运行。 我遇到的问题是,如果文件不能被复制,将会抛出exception。 如果在主线程中运行,这是可以的; 但是,具有以下代码不起作用: try: threadClass = TheThread(param1, param2, etc.) threadClass.start() ##### **Exception takes place here** except: print "Caught an exception" 在线程类本身,我试图重新抛出exception,但它不起作用。 我在这里看到有人问过类似的问题,但他们似乎都在做比我想做的更具体的事情(我不太了解提供的解决scheme)。 我已经看到人们提到sys.exc_info()的用法,但我不知道在哪里或如何使用它。 所有的帮助非常感谢! 编辑:线程类的代码如下: class TheThread(threading.Thread): def __init__(self, sourceFolder, destFolder): threading.Thread.__init__(self) self.sourceFolder = sourceFolder self.destFolder = destFolder def run(self): try: shul.copytree(self.sourceFolder, self.destFolder) except: raise

在类方法上使用property()

我有一个类与两个类方法(使用classmethod()函数)获取和设置本质上是一个静态variables。 我试图用这些属性()函数,但它会导致一个错误。 我可以在翻译中重现以下错误: class Foo(object): _var = 5 @classmethod def getvar(cls): return cls._var @classmethod def setvar(cls, value): cls._var = value var = property(getvar, setvar) 我可以演示类方法,但它们不作为属性工作: >>> f = Foo() >>> f.getvar() 5 >>> f.setvar(4) >>> f.getvar() 4 >>> f.var Traceback (most recent call last): File "<stdin>", line 1, in ? TypeError: 'classmethod' object is not […]

如何在Python中创build一个不可变的对象?

虽然我从来没有需要这样做,但让我感到惊讶的是,在Python中创build一个不可变的对象可能有点棘手。 你不能只是覆盖__setattr__ ,因为你甚至不能在__init__设置属性。 inheritance一个元组是一个有效的技巧: class Immutable(tuple): def __new__(cls, a, b): return tuple.__new__(cls, (a, b)) @property def a(self): return self[0] @property def b(self): return self[1] def __str__(self): return "<Immutable {0}, {1}>".format(self.a, self.b) def __setattr__(self, *ignored): raise NotImplementedError def __delattr__(self, *ignored): raise NotImplementedError 但是你可以通过self[0]和self[1]来访问a和bvariables,这很烦人。 纯Python中可能吗? 如果没有,我将如何做一个C扩展? (仅在Python 3中工作的答案是可以接受的)。 更新: 因此,子类化元组是在纯Python中执行的方式,除了[0] , [1]等访问数据的额外可能性,这种方法运行良好。因此,要完成这个问题,所有缺less的就是如何“正确“的C语言,我认为这很简单,只是没有实现任何geititem或setattribute等等。但是我自己却没有这么做,因此我提供了一个奖励,因为我很懒。 🙂

在Python中创build一个具有一定大小的空列表

我想创build一个可以容纳10个元素的空列表(或者其他最好的方法)。 之后,我想分配的值列表中,例如这应该显示0到9: s1 = list(); for i in range(0,9): s1[i] = i print s1 但是,当我运行这个代码,它会产生一个错误,或者在另一种情况下,它只显示[] (空)。 有人能解释为什么吗?

Python函数重载

我知道,Python不支持方法重载,但我遇到了一个问题,我似乎无法以一个很好的Pythonic方式解决。 我正在制作一个angular色需要拍摄各种子弹的游戏,但是如何编写用于创build这些子弹的不同function? 例如,假设我有一个函数,它创build一个子弹以一定的速度从A点移动到B点。 我会写这样一个函数: def add_bullet(sprite, start, headto, speed): … Code … 但是我想编写其他函数来创build子弹如: def add_bullet(sprite, start, direction, speed): def add_bullet(sprite, start, headto, spead, acceleration): def add_bullet(sprite, script): # For bullets that are controlled by a script def add_bullet(sprite, curve, speed): # for bullets with curved paths … And so on … 等很多变化。 有没有更好的方法来做到这一点,而没有使用这么多的关键字参数导致它变得很快丑。 重命名每个函数也很糟糕,因为你得到了add_bullet1 , […]

在pandas DataFrame中设置特定单元格的值

我创build了一个pandasDataFrame df=DataFrame(index=['A','B','C'], columns=['x','y']) 并得到这个 XY NaN NaN B NaN NaN C NaN NaN 然后,我想为特定的单元格赋值,例如行“C”和列“x”。 我期望得到这样的结果: XY NaN NaN B NaN NaN C 10 NaN 与此代码: df.xs('C')['x']=10 但是df的内容没有改变。 在数据框中再次只有南。 有什么build议么?

正确的方法来尝试/除了使用Python请求模块?

try: r = requests.get(url, params={'s': thing}) except requests.ConnectionError, e: print e #should I also sys.exit(1) after this? 它是否正确? 有没有更好的方法来构造这个? 这将覆盖我所有的基地吗?

迭代模板中的模型实例字段名称和值

我正在尝试创build一个基本的模板来显示所选实例的字段值及其名称。 可以把它看作表格格式的实例值的标准输出,第一列中的字段名称(特别是在字段中指定了verbose_name)和第二列中的字段值。 例如,假设我们有以下的模型定义: class Client(Model): name = CharField(max_length=150) email = EmailField(max_length=100, verbose_name="E-mail") 我会希望它在模板中输出像这样(假设一个具有给定值的实例): Field Name Field Value ———- ———– Name Wayne Koorts E-mail waynes@email.com 我想要实现的是能够将模型的实例传递给模板,并能够在模板中dynamic地迭代它,如下所示: <table> {% for field in fields %} <tr> <td>{{ field.name }}</td> <td>{{ field.value }}</td> </tr> {% endfor %} </table> 有没有一个干净的,“Django认可”的方式来做到这一点? 这似乎是一个非常普遍的任务,我将需要经常为这个特定的项目。

如何在Mac OS X上安装MySQLdb(Python数据访问库到MySQL)?

我是一个Python的新手,但我只是花了一天的时间来研究如何让MySQLdb正常工作,根据谷歌的宇宙包括了许多PITA是什么,以及过多的指南,似乎是过时。 鉴于这个网站是为了解决这些问题,我知道我将来需要一个解决scheme的参考,我会问这个问题,提供我的答案,看看还有什么可以漂浮到表面。 所以问题是如何让MySQLdb在Mac OS X上工作?