小编roo*_*oot的帖子

将字符串转换为DataFrame中的浮点数

如何将包含字符串和NaN值的DataFrame列转换为浮点数.还有另一列,其值为字符串和浮点数; 如何将整个列转换为浮点数.

python pandas

103
推荐指数
5
解决办法
27万
查看次数

如何在Pandas DataFrame中移动列

我想在Pandas中移动一列DataFrame,但是我没有找到一种方法来从文档中完成它而不重写整个DF.有谁知道怎么做?数据帧:

##    x1   x2
##0  206  214
##1  226  234
##2  245  253
##3  265  272
##4  283  291
Run Code Online (Sandbox Code Playgroud)

期望的输出:

##    x1   x2
##0  206  nan
##1  226  214
##2  245  234
##3  265  253
##4  283  272
##5  nan  291
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

87
推荐指数
4
解决办法
10万
查看次数

Python lambda与if但没有其他

我正在编写一些lambda函数,但无法解决这个问题.有没有办法lambda x: x if (x<3)在python中有类似的东西?由于lambda a,b: a if (a > b) else b工作正常.到目前为止lambda x: x < 3 and x or None似乎是我发现的最接近的.

python lambda inline-if

34
推荐指数
3
解决办法
6万
查看次数

Pandas DataFrame:将函数应用于所有列

我可以.map(func)在df中的任何列上使用,例如:

df=DataFrame({'a':[1,2,3,4,5,6],'b':[2,3,4,5,6,7]})

df['a']=df['a'].map(lambda x: x > 1)
Run Code Online (Sandbox Code Playgroud)

我还可以:

df['a'],df['b']=df['a'].map(lambda x: x > 1),df['b'].map(lambda x: x > 1)
Run Code Online (Sandbox Code Playgroud)

是否有更多的pythonic方法将函数应用于所有列或整个帧(没有循环)?

python dataframe pandas

28
推荐指数
2
解决办法
3万
查看次数

Python Selenium:使用xpath查找对象属性

我是xpath的新手,尝试使用xpath获取"value"的值:

<input type="submit" value="  Search  " class="long searchButton" style="width:190px !important;">
Run Code Online (Sandbox Code Playgroud)

虽然很容易找到元素"type="submit":

browser.find_elements_by_xpath("//*[@type='submit']")
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何获得我需要的值,如:

browser.find_elements_by_xpath("//*[@type='submit']/@value")
Run Code Online (Sandbox Code Playgroud)

有点预期会出错:

expression "//*[@type=\'submit\']/@value" is: [object Attr]. It should be an element
Run Code Online (Sandbox Code Playgroud)

任何想法如何解决这个问题?

编辑:xpath是正确的,但它"返回"一个obj属性,因为它不是一个元素,所以不允许.我找不到像get_attr_by_xpath()或类似的方法.

python selenium xpath

19
推荐指数
1
解决办法
5万
查看次数

使用nltk标记unicode

我有使用utf-8编码的文本文件,其中包含'ö','ü'等字符.我想解析这些文件的文本形式,但我无法让tokenizer正常工作.如果我使用标准的nltk标记器:

f = open('C:\Python26\text.txt', 'r') # text = 'müsli pöök rääk'
text = f.read()
f.close
items = text.decode('utf8')
a = nltk.word_tokenize(items)
Run Code Online (Sandbox Code Playgroud)

输出: [u'\ufeff', u'm', u'\xfc', u'sli', u'p', u'\xf6', u'\xf6', u'k', u'r', u'\xe4', u'\xe4', u'k']

Punkt tokenizer似乎做得更好:

f = open('C:\Python26\text.txt', 'r') # text = 'müsli pöök rääk'
text = f.read()
f.close
items = text.decode('utf8')
a = PunktWordTokenizer().tokenize(items)
Run Code Online (Sandbox Code Playgroud)

输出: [u'\ufeffm\xfcsli', u'p\xf6\xf6k', u'r\xe4\xe4k']

在我无法弄清楚的第一个令牌之前仍然有'\ ufeff'(不是我不能删除它).我究竟做错了什么?非常感谢.

python unicode tokenize nltk

18
推荐指数
2
解决办法
2万
查看次数

Python生成器对象:__sizeof __()

这可能是一个愚蠢的问题,但无论如何我都会问.我有一个生成器对象:

>>> def gen():
...     for i in range(10):
...         yield i
...         
>>> obj=gen()
Run Code Online (Sandbox Code Playgroud)

我可以测量它的大小:

>>> obj.__sizeof__()
24
Run Code Online (Sandbox Code Playgroud)

据说发电机被消耗掉了:

>>> for i in obj:
...     print i
...     
0
1
2
3
4
5
6
7
8
9
>>> obj.__sizeof__()
24
Run Code Online (Sandbox Code Playgroud)

......但obj.__sizeof__()仍然是一样的.

使用字符串它按预期工作:

>>> 'longstring'.__sizeof__()
34
>>> 'str'.__sizeof__()
27
Run Code Online (Sandbox Code Playgroud)

如果有人能够启发我,我将感激不尽.

python generator internals

14
推荐指数
2
解决办法
1万
查看次数

空列表布尔值

这可能只是愚蠢的,但对我来说这有点令人困惑:

In [697]: l=[]

In [698]: bool(l)
Out[698]: False

In [699]: l == True
Out[699]: False

In [700]: l == False
Out[700]: False 

In [701]: False == False
Out[701]: True
Run Code Online (Sandbox Code Playgroud)

为什么l==False返回FalseFalse == False返回True

python boolean list

13
推荐指数
2
解决办法
2万
查看次数

如何加载包含带有unicode字符的字典的pickle文件?

我有一本字典:

mydict={'öö':1,'ää':2}
Run Code Online (Sandbox Code Playgroud)

我把它写成了一个pickle文件:

a=codecs.open(r'mydict.pkl', 'wb', 'utf-8')
pickle.dump(mydict, a)
Run Code Online (Sandbox Code Playgroud)

如果我尝试加载它:

m=codecs.open(r'mydict.pkl', 'rb', 'utf-8')
mydict = pickle.load(m)
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

KeyError: u"S'\\xe4\\xe4'\np1\nI2\nsS'\\xf6\\xf6'\np2\nI1\ns."
Run Code Online (Sandbox Code Playgroud)

任何想法如何解决这个问题?帮助很大程度上受到了关注.

python unicode dictionary pickle

8
推荐指数
1
解决办法
6785
查看次数

使用lxml.html提取文本

我有一个HTML文件:

<html>
    <p>somestr
        <sup>1</sup>
       anotherstr
    </p>
</html>
Run Code Online (Sandbox Code Playgroud)

我想将文本提取为:

somestr 1个 anotherstr

但我无法弄清楚该怎么做.我写了一个to_sup()函数,将数字字符串转换为上标,所以我得到的最接近的是:

for i in doc.xpath('.//p/text()|.//sup/text()'):
    if i.tag == 'sup':
        print to_sup(i),
    else:
        print i,
Run Code Online (Sandbox Code Playgroud)

但我ElementStringResult似乎没有办法获取标签名称,所以我有点迷失.任何想法如何解决?

python lxml

7
推荐指数
2
解决办法
7791
查看次数