小编And*_*ndy的帖子

如何防止熊猫将我的整数值重新转换为浮点数?

我正在合并两个带有以下输入的 CSV 文件。

文件1.csv

Id,attr1,attr2,attr3
1,True,7,"Purple"
2,False,19.8,"Cucumber"
3,False,-0.5,"A string with a comma, because it has one"
4,True,2,"Nope"
5,True,4.0,"Tuesday"
6,False,1,"Failure"
Run Code Online (Sandbox Code Playgroud)

文件2.csv

Id,attr4,attr5,attr6
2,"python",500000.12,False
5,"program",3,True
3,"Another string",-5,False
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时

import pandas as pd
df1 = pd.read_csv("file1.csv")
df2 = pd.read_csv("file2.csv")
merged = df1.merge(df2, on="Id", how="outer").fillna("")
merged.to_csv("merged.csv", index=False)
Run Code Online (Sandbox Code Playgroud)

我得到这样的输出

Id,attr1,attr2,attr3,attr4,attr5,attr6
1,True,7.0,Purple,,,
2,False,19.8,Cucumber,python,500000.12,False
3,False,-0.5,"A string with a comma, because it has one",Another string,-5.0,False
4,True,2.0,Nope,,,
5,True,4.0,Tuesday,program,3.0,True
6,False,1.0,Failure,,,
Run Code Online (Sandbox Code Playgroud)

请注意,attr2我的一些记录已从 a 转换int为 a float

1,True,7.0,Purple,,,
Run Code Online (Sandbox Code Playgroud)

对比预期

1,True,7,Purple,,,
Run Code Online (Sandbox Code Playgroud)

对于这个示例数据集,这是一个小烦恼。但是,当我针对大量数据运行它时,我的Id列中也会出现这种行为。这将进一步打破我的工作流程链中的流程。

如何防止 Pandas …

python csv pandas

3
推荐指数
1
解决办法
4752
查看次数

如何在python中删除字节顺序标记

这个问题与我在此处报告的Stack Overflow API的最近更改有关。在该问题中,我收到了似乎有效的回复,但实际上我无法使其生效。

这是我的代码

import requests
import json
url="https://api.stackexchange.com/2.2/sites/?filter=%21%2AL1%2AAY-85YllAr2%29&pagesize=1&page=1"
response = requests.get(url)
response.text
Run Code Online (Sandbox Code Playgroud)

这个输出

u'\ufeff{"items":[{"site_state":"normal","api_site_parameter":"stackoverflow","name":"Stack Overflow"}],"has_more":true,"quota_max":300,"quota_remaining":294}'
Run Code Online (Sandbox Code Playgroud)

领导u'\ufeff意味着,如果我这样做,response.json()我会得到ValueError: No JSON object could be decoded

我提供的建议是使用decode('utf-8-sig')。但是,我似乎也无法完成这项工作:

尝试1:

response.text.decode('utf-8-sig')
UnicodeEncodeError: 'ascii' codec can't encode character u'\ufeff' in position 0: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)

尝试2:

json.loads(response.text).decode('utf-8-sig')
ValueError: No JSON object could be decoded
Run Code Online (Sandbox Code Playgroud)

什么是删除潜在客户的适当方法u'\ufeff

python byte-order-mark

3
推荐指数
1
解决办法
3837
查看次数

SQL Server 2012:提取正则表达式组

我的数据库中有Markdown格式的文本.我想提取链接并计算我拥有的匹配链接的数量.我可以使用类似于此的查询获取包含链接的文本块列表:

SELECT post_text
FROM posts p
WHERE p.body like '%\[%](http%)%' ESCAPE '\'
Run Code Online (Sandbox Code Playgroud)

我如何进入下一步,只提取文本的链接部分(括号中的部分)?如果我能得到这个,我可以计算这个特定链接在我的数据集中的次数.

一些样本数据:

"Visit [Google](http://google.com)"    -> Should return "http://google.com"
"Get an [iPhone](http://www.apple.com) (I like it better than Android)"   -> Should return "http://www.apple.com"
"[Example](http://example.com)"    -> Should return "http://example.com"
"This is a message"    -> Nothing to return on this one, no link
"I like cookies (chocolate chip)"  -> Nothing to return on this one, no link
"[Frank] says 'Hello'" -> Nothing to return on this one, no link
Run Code Online (Sandbox Code Playgroud)

我正在使用SQL Server 2012(如果这方面的版本之间存在差异).

regex sql sql-server sql-server-2012

3
推荐指数
1
解决办法
5325
查看次数

QWebview的Dymo标签打印机?

我试图使用Dymo示例页面从基于Python/Qt的应用程序中的QWebview打印标签.该示例在主要浏览器中运行良好(IE,FF,Chrome已经过测试).但是,当在QWebview中加载示例页面时,我收到以下错误:

DYMO.Label.Framework.js line 1: Error: DYMO Label Framework Plugin is not installed

我不确定为什么它可以在另一个浏览器中正常工作,但不能在我的应用程序的Web视图中工作.将这些Dymo示例加载到webview中的正确方法是什么?

这是样板页面,在主流浏览器通过在QWebview失败(你需要一个戴莫打印机打印,否则它会用一个警告,告诉没有打印机被发现装载)工作原理:HTTP:// labelwriter. COM /软件/ DLS/SDK /样品/ JS/PreviewAndPrintLabel/PreviewAndPrintLabel.html

当我在webview中加载它时,我甚至没有得到警报(这是有道理的,因为上面的错误在第1行找到).

python printing qt qwebview

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

在某些情况下,Python Regex需要很长时间

我编译了以下模式

pattern = re.compile(
    r"""
    (?P<date>.*?)
    \s*
    (?P<thread_id>\w+)
    \s*PACKET\s*
    (?P<identifier>\w+)
    \s*
    (?P<proto>\w+)
    \s*
    (?P<indicator>\w+)
    \s*
    (?P<ip>\d+\.\d+\.\d+\.\d+)
    \s*
    (?P<xid>\w+)
    \s*
    (?P<q_r>.*?)
    \s*\[
    (?P<flag_hex>[0-9]*)
    \s*
    (?P<flag_char_code>.*?)
    \s*
    (?P<status>\w+)
    \]\s*
    (?P<record>\w+)
    \s*
    \.(?P<domain>.*)\.
    """, re.VERBOSE
    )
Run Code Online (Sandbox Code Playgroud)

使用此字符串

2/1/2014 9:34:29 PM 05EC PACKET 00000000025E97A0 UDP Snd 10.10.10.10 ebbe R Q [8381 DR NXDOMAIN] A (1)9(1)a(3)c-0(11)19-330ff801(7)e0400b1(4)15e0(4)1ca7(4)2f4a(3)210(1)0(26)841f75qnhp97z6jknf946qwfm5(4)avts(6)domain(3)com(0)

它成功运作

In [4]: pattern.findall(re.sub('\(\d+\)', '.', x))
Out[4]: 
[('2/1/2014 9:34:29 PM',
  '05EC',
  '00000000025E97A0',
  'UDP',
  'Snd',
  '10.10.10.10',
  'ebbe',
  'R Q',
  '8381',
  'DR',
  'NXDOMAIN',
  'A',
  '9.a.c-0.19-330ff801.e0400b1.15e0.1ca7.2f4a.210.0.841f75qnhp97z6jknf946qwfm5.avts.domain.com')]
Run Code Online (Sandbox Code Playgroud)

问题是在某些情况下需要很长时间,任何想法如何增强消耗时间的模式.

python regex

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

在Python中匹配数字模式的方法

我是Python的新手,我想知道是否有一种方法可以使用基于数字模式的条件语句.例如,如果我有一个数值列表,例如:

583201
584068
485027
581047
Run Code Online (Sandbox Code Playgroud)

我正在根据这些数字向变量"x"输出一个值,如何将值1分配给以"58"开头的所有值?

我试过这个:

import re

def Classify(SIC12):
   if re.search(7389*,SIC12):
       return 1
   else:
       return 0
Run Code Online (Sandbox Code Playgroud)

但看起来搜索功能仅适用于字符串.有没有办法做这样的事情?

python

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

如何使用python匹配文件中的文件名

如何查明文件内是否存在具有相同模式的两个文件。如果所有文件名都有两组文件名( csv.new 和 csv),则继续下一步,否则退出并显示错误消息。

前缀“abc_package”将有两个文件,第一个文件扩展名为“csv.new”,第二个文件扩展名为“csv”。“list_of_files.txt”中可能有许多文件名。

例如:List_of_files.txt

abc_package.1406728501.csv.new
abc_package.1406728501.csv
abc_package.1406724901.csv.new
abc_package.1406724901.csv
Run Code Online (Sandbox Code Playgroud)

python pattern-matching

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

烧瓶:model_form:AttributeError:类型对象“ Form”没有属性“ query”

这是错误:

File"/www/sites/blog/flask/lib/python2.7/sitepackages/flask/app.py",
   line 1701, in __call__ return self.wsgi_app(environ, start_response)

File"/www/sites/blog/flask/lib/python2.7/sitepackages/flask/app.py",
   line 1689, in wsgi_app response =self.make_response(self.handle_exception(e))

File"/www/sites/blog/flask/lib/python2.7/sitepackages/flask/app.py",
   line 1687, in wsgi_app response = self.full_dispatch_request()

File"/www/sites/blog/flask/lib/python2.7/sitepackages/flask/app.py",
   line 1360, in full_dispatch_request rv = self.handle_user_exception(e)

File"/www/sites/blog/flask/lib/python2.7/sitepackages/flask/app.py",
   line 1358, in full_dispatch_request rv = self.dispatch_request()

File"/www/sites/blog/flask/lib/python2.7/sitepackages/flask/app.py",
   line 1344, in dispatch_request return
   self.view_functions[rule.endpoint](**req.view_args)

File"/www/sites/blog/flask/lib/python2.7/sitepackages/flask/views.py",
   line 83, in view return self.dispatch_request(*args, **kwargs)

File"/www/sites/blog/flask/lib/python2.7/sitepackages/flask/views.py",
   line 150, in dispatch_request return meth(*args, **kwargs)

File"/www/sites/MyBlog/app/posts.py", line 38, in get return
   render_template('posts/detail.html', **context)

File"/www/sites/blog/flask/lib/python2.7/sitepackages/flask/templating.py",
   line 125, in render_template context, ctx.app)

File"/www/sites/blog/flask/lib/python2.7/sitepackages/flask/templating.py",
   line …
Run Code Online (Sandbox Code Playgroud)

python flask

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

如果,elif,其他故障?

我是编程新手,我编写了一个程序来解决方程中的不同变量.我有"if""elif"和"else"设置来解决等式的不同部分.出于某种原因,它只会解决第一部分("if"部分)我将复制并粘贴下面的程序.

import math
print 'A=Pert Calculator'
print ''
print 'Created by Triton Seibert'
print ''
Y = raw_input('What letter would you like to solve for?: ')
if Y == 'A' or 'a' or '1':
    print 'Solving for A'
    print ''

    P = float(raw_input('Set value for P (initial investment):'))

    e = 2.71828
    print ''

    r = float(raw_input('Set value for r (rate):'))
    print ''

    t = float(raw_input('Set value for t (time in years):'))

    print ''
    ert = e**(r*t)
    answer = P*ert
    print …
Run Code Online (Sandbox Code Playgroud)

python python-2.7

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

Pandas:使用多个字符串条件过滤行

我有一个数据集,其中有一列如下所示:

NAME
ZZKIDS
ZZZKIDS
ZZZANTHONY
Run Code Online (Sandbox Code Playgroud)

要过滤行,我知道我可以使用这个:

df[~df.NAME.str.contains("ZZ")]
Run Code Online (Sandbox Code Playgroud)

有没有办法将另一个“ZZZ”与“ZZ”一起添加?

python pandas

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