我在pandas有一个很大的数据框,除了作为索引使用的列应该只有数值: df = pd.DataFrame({'a': [1, 2, 3, 'bad', 5], 'b': [0.1, 0.2, 0.3, 0.4, 0.5], 'item': ['a', 'b', 'c', 'd', 'e']}) df = df.set_index('item') 我怎样才能find数据框df中有一个非数字值的行? 在这个例子中,它是数据框中的第四行,在a列中有string'bad' 。 如何可以通过编程find这一行?
为什么我不能执行如下的操作: class Test(object): def __init__(self): self = 5 t = Test() print t 我希望它打印5因为我们用它覆盖了实例,但是它根本没有做任何事情。 甚至不会抛出一个错误。 只是忽略了这个任务。 我知道几乎不会有人想要这样做的情况,但是你不能这样做似乎很奇怪。 更新:我现在明白了为什么它不起作用,但我仍然想知道是否有任何方法从实例中replace实例。
我想使用Mechanize来模拟浏览到包含DOM事件和AJAX的活动JavaScript的网页,到目前为止我还没有find办法做到这一点。 我看过一些支持JavaScript的Python客户端浏览器,比如Spynner和Zope,他们都没有为我工作。 Spynner始终崩溃PyQt和Zope不支持JavaScript,因为它似乎。 有没有一种方法来模拟只用Python浏览,没有额外的进程,如WATIR或操作Firefox或Internet Explorer的库,同时完全支持Javascript,就像实际浏览页面一样?
我试图在默认浏览器中从python启动一个本地html文件。 现在我的默认是谷歌浏览器。 如果我双击一个.html文件,chrome启动。 当我使用Python的webbrowser.open,IE浏览器启动,而不是一个空白的地址栏。 Python 2.7.1 (r271:86832, Nov 27 2010, 17:19:03) [MSC v.1500 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import webbrowser >>> filename = 'test.html' >>> webbrowser.open('file://'+filename) True >>> print(webbrowser.get().__class__.__name__) WindowsDefault 我检查了我的默认程序,他们看起来是正确的。 我在Win 7 SP1上。 为什么铬不启动? 更新 :代码将在未知的操作系统和机器上运行,所以注册浏览器或path更新不是选项。 我在考虑parsingfile://的url,然后做一个os.path.exists检查和os.path.realpath可能是答案。
我生成所有可能的三个字母关键字, eg aaa, aab, aac…. zzy, zzz下面是我的代码: alphabets = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'] keywords = [] for alpha1 in alphabets: for alpha2 in alphabets: for alpha3 in alphabets: keywords.append(alpha1+alpha2+alpha3) 这个function是否能够以更加圆滑和高效的方式实现?
假设我有以下代码: import logging import logging.handlers a = logging.getLogger('myapp') h = logging.handlers.RotatingFileHandler('foo.log') h.setLevel(logging.DEBUG) a.addHandler(h) # The effective log level is still logging.WARN print a.getEffectiveLevel() a.debug('foo message') a.warn('warning message') 我期望在处理程序上设置logging.DEBUG会导致debugging级别的消息被写入日志文件。 但是,这会打印30个有效级别(相当于logging.WARNING ,默认值),并且只将warn消息logging到日志文件中,而不是debugging消息。 看起来处理程序的日志级别正在被丢弃,例如,它被默默地忽略了。 这让我感到奇怪,为什么在处理程序上有setLevel ?
我想比较一个date到Django中的当前date,最好在模板中,但也可以在呈现模板之前做。 如果date已经过去,我想说“过去”,而如果是将来,我想给出date。 我希望能做到这样的事情: {% if listing.date <= now %} In the past {% else %} {{ listing.date|date:"d MY" }} {% endif %} 现在是今天的date,但这是行不通的。 在Django文档中我找不到任何关于此的信息。 任何人都可以给一些build议?
我有一个简单的图像,我用matplotlib中的imshow显示。 我想要应用一个自定义的颜色映射,以便0-5之间的值是白色的,5-10是红色(非常简单的颜色)等。我试过按照这个教程: http://assorted-experience.blogspot.com/2007/07/custom-colormaps.html以下代码: cdict = { 'red' : ((0., 0., 0.), (0.5, 0.25, 0.25), (1., 1., 1.)), 'green': ((0., 1., 1.), (0.7, 0.0, 0.5), (1., 1., 1.)), 'blue' : ((0., 1., 1.), (0.5, 0.0, 0.0), (1., 1., 1.)) } my_cmap = mpl.colors.LinearSegmentedColormap('my_colormap', cdict, 3) plt.imshow(num_stars, extent=(min(x), max(x), min(y), max(y)), cmap=my_cmap) plt.show() 但是,这最终显示出奇怪的颜色,我只需要3-4个颜色,我想定义。 我如何做到这一点?
我有点困惑~运算符。 代码如下: a = 1 ~a #-2 b = 15 ~b #-16 ~如何工作? 我以为, ~a会是这样的: 0001 = a 1110 = ~a 为什么不?
当使用Python 2.7和urllib2从API中检索数据时,我得到[Errno 104] Connection reset by peer的错误[Errno 104] Connection reset by peer 。 什么导致错误,以及如何处理错误,使脚本不会崩溃? ticker.py def urlopen(url): response = None request = urllib2.Request(url=url) try: response = urllib2.urlopen(request).read() except urllib2.HTTPError as err: print "HTTPError: {} ({})".format(url, err.code) except urllib2.URLError as err: print "URLError: {} ({})".format(url, err.reason) except httplib.BadStatusLine as err: print "BadStatusLine: {}".format(url) return response def […]