小编met*_*rsk的帖子

pandas merge上的键错误(左连接)

我有两个数据帧,df_purchase(1)和df_login(2)

+--------+-----+--------+------------+--------------------+-------------+--------------------------+
|        | age | gender |    ttp     |       count        | sum(amount) |          region          |
+--------+-----+--------+------------+--------------------+-------------+--------------------------+
|  49427 | 63  | M      | 824.731412 | 2                  | 25.00       | Omaha, Nebraska          |
|  28433 | 49  | M      | 1.166250   | 2                  | 41.94       | Catasauqua, Pennsylvania |
|   4162 | 29  | M      | 5.620949   | 2                  | 51.78       | Eagle Center, Iowa       |
|  18747 | 43  | M      | 153.502072 | 2                  | 23.84       | Pacific, …
Run Code Online (Sandbox Code Playgroud)

python merge pandas

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

Pandas数据框中的MultiIndex Group By

我有一个数据集,其中包含按年份划分的国家和经济指标统计数据,如下所示:

Country  Metric           2011   2012   2013  2014
  USA     GDP               7      4     0      2
  USA     Pop.              2      3     0      3
  GB      GDP               8      7     0      7
  GB      Pop.              2      6     0      0
  FR      GDP               5      0     0      1
  FR      Pop.              1      1     0      5
Run Code Online (Sandbox Code Playgroud)

如何在熊猫中使用MultiIndex创建一个数据框,每个国家只显示年度GDP?

我试过了:

df = data.groupby(['Country', 'Metric'])
Run Code Online (Sandbox Code Playgroud)

但它没有正常工作.

python dataset dataframe pandas

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

使用Python中的Selenium解析HTML5 data-*属性值

我正在解析一个JS生成的网页,如下所示:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC


driver = webdriver.Firefox()
driver.get('https://www.consumerbarometer.com/en/graph-builder/?question=M1&filter=country:singapore,canada,mexico,brazil,argentina,united_states,bulgaria,austria,belgium,croatia,czech_republic,denmark,estonia,finland,france,germany,greece,hungary,italy,ireland,latvia,lithuania,norway,netherlands,poland,portugal,russia,romania,serbia,slovakia,spain,slovenia,sweden,switzerland,ukraine,united_kingdom,australia,china,israel,hong_kong_sar,japan,korea,new_zealand,malaysia,taiwan,turkey,vietnam')

// wait for svg to appear
WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.TAG_NAME, 'svg')))

for text in driver.find_elements_by_class_name('bar-text-label'):
    print(text.text)

driver.close()
Run Code Online (Sandbox Code Playgroud)

除了text从类中获取之外,bar-text-label我还想从HTML5数据属性中获取值.例如,<rect rx="3" ry="3" width="76%" height="40" transform="translate(0,40)" data-value="76" class="bar"></rect>我希望能够解析76这个问题.

这可能在Selenium吗?

我尝试了下面的两个,没有成功:

for text in driver.find_elements_by_class_name('bar'): 
    print(data_value.text)

for data in driver.find_elements_by_xpath('//*[contains(@data-value)]/@data-value'): 
    print(data.text)
Run Code Online (Sandbox Code Playgroud)

python html5 selenium parsing custom-data-attribute

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

除了使用 xlsxwriter 进行列格式化之外,还逐行应用格式化

我正在使用 xlsxwriter 模块格式化 Excel 文件中的所有列:

def to_excel(video_report, feed):
    # Create a Pandas Excel writer using XlsxWriter as the engine.
    writer = pd.ExcelWriter('daily_report.xlsx', engine='xlsxwriter')

    # Convert the dataframe to an XlsxWriter Excel object.
    video_report.to_excel(writer, sheet_name='Video Overview', na_rep="-")

    # Get the xlsxwriter objects from the dataframe writer object.
    workbook = writer.book
    worksheet = writer.sheets['Video Overview']

    # Add some cell formats.
    integer = workbook.add_format({'num_format': '0', 'align': 'center'})
    decimal = workbook.add_format({'num_format': '0.00', 'align': 'center'})
    percentage = workbook.add_format({'num_format': '0.0%', 'align': 'center'})

    zebra = workbook.add_format({'bold': True}) …
Run Code Online (Sandbox Code Playgroud)

python xlsxwriter

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

如何在Python中使用imaplib处理错误

我想写一个错误处理,因为用户会在我的脚本中输入错误的密码.我继续在except语句之后更改代码,但我无法找出错误的正确代码是什么.我错过了什么吗?

import imaplib
import email

mail = imaplib.IMAP4_SSL('imap.gmail.com')

username = raw_input('USERNAME (email):')
password = raw_input('PASSWORD: ')

    try:
        mail.login(username, password)
        print "Logged in as %r !" % username
    except: 
        imaplib.error
        print "Log in failed."

mail.list()
# Out: list of "folders" aka labels in gmail.
mail.select("inbox") # connect to inbox.

fromWho = raw_input('FROM:')

result, data = mail.uid('search', None, '(FROM fromWho)')
latest_email_uid = data[0].split()[-1]
result, data = mail.uid('fetch', latest_email_uid, '(RFC822)')
raw_email = data[0][1]

print raw_email
Run Code Online (Sandbox Code Playgroud)

python email error-handling imap

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

IPython Notebook和Pandas自动完成

我注意到如果要输入df.column_name(),我可以column_name在IPython Notebook中的选项卡中自动完成。

现在,对列执行操作的正确语法是df['column_name'],在该处我无法自动完成(我假设是因为它是字符串?)。还有其他符号或方法可以简单地键入列名。我是essentailly,正在寻找一种解决方案,该解决方案可以让我在其中自动完成列名的制表符df['column_name']

python autocomplete pandas ipython-notebook

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

如何使用XlsxWriter将多种格式应用于一列

在下面的代码中,我将数字格式应用于Excel工作表中的每一列。但是,我似乎无法弄清楚将多种格式应用于特定的列,居中或编号最终被覆盖。甚至可以对一列应用两种格式吗?

def to_excel(video_report):

    # Create a Pandas Excel writer using XlsxWriter as the engine.
    writer = pd.ExcelWriter('pandas_simple.xlsx', engine='xlsxwriter')

    # Convert the dataframe to an XlsxWriter Excel object.
    video_report.to_excel(writer, sheet_name='Sheet1', na_rep="-")

    # Get the xlsxwriter objects from the dataframe writer object.
    workbook  = writer.book
    worksheet = writer.sheets['Sheet1']

    # Add some cell formats.
    integer = workbook.add_format({'num_format': '0'})
    decimal = workbook.add_format({'num_format': '0.00'})
    percentage = workbook.add_format({'num_format': '0.0%'})
    center = workbook.add_format({'align': 'center'})

    # APPLY CENTERING
    worksheet.set_column('B:L', None, center)

    # APPLY NUMBER FORMATTING   
    worksheet.set_column('B:B', 13, integer …
Run Code Online (Sandbox Code Playgroud)

python pandas xlsxwriter

5
推荐指数
2
解决办法
8345
查看次数

按大前N%分类大熊猫数据

我有一个熊猫系列(作为更大的数据框的一部分),如下所示:

0        7416
1       10630
2        7086
3        2091
4        3995
5        1304
6         519
7        1262
8        3676
9        2371
10       5346
11        912
12       3653
13       1093
14       2986
15       2951
16      11859
Run Code Online (Sandbox Code Playgroud)

我想根据以下分位数对行进行分组:

Top 0-5%
Top 6-10%
Top 11-25%
Top 26-50%
Top 51-75%
Top 76-100%
Run Code Online (Sandbox Code Playgroud)

首先,我开始使用pd.rank()数据,然后我计划然后使用pd.cut()将数据切割成容器,但它似乎不接受顶部N%,而是接受显式bin边缘.有没有一种简单的方法在pandas中执行此操作,或者我是否需要创建一个lambda/apply函数来计算每个排序项应放在哪个bin中.

python pandas

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

将JSON加速到具有大量数据操作的数据帧

我有一大堆JSON数据格式如下:

[
    [{
        "created_at": "2017-04-28T16:52:36Z",
        "as_of": "2017-04-28T17:00:05Z",
        "trends": [{
            "url": "http://twitter.com/search?q=%23ChavezSigueCandanga",
            "query": "%23ChavezSigueCandanga",
            "tweet_volume": 44587,
            "name": "#ChavezSigueCandanga",
            "promoted_content": null
        }, {
            "url": "http://twitter.com/search?q=%2327Abr",
            "query": "%2327Abr",
            "tweet_volume": 79781,
            "name": "#27Abr",
            "promoted_content": null
        }],
        "locations": [{
            "woeid": 395277,
            "name": "Turmero"
        }]
    }],
    [{
        "created_at": "2017-04-28T16:57:35Z",
        "as_of": "2017-04-28T17:00:03Z",
        "trends": [{
            "url": "http://twitter.com/search?q=%23fyrefestival",
            "query": "%23fyrefestival",
            "tweet_volume": 141385,
            "name": "#fyrefestival",
            "promoted_content": null
        }, {
            "url": "http://twitter.com/search?q=%23HotDocs17",
            "query": "%23HotDocs17",
            "tweet_volume": null,
            "name": "#HotDocs17",
            "promoted_content": null
        }],
        "locations": [{
            "woeid": 9807,
            "name": "Vancouver"
        }]
    }]
]...
Run Code Online (Sandbox Code Playgroud)

我编写了一个函数,将其格式化为采用以下形式的pandas数据框: …

python json dataframe pandas

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

&lt;位于0x1017fe3f0的&lt;sqlite3.Row对象&gt;,而不是数据库内容

我的模板是这样的:

  {% for order in orders %}
    <li><h2>{{ order}}</h2>
  {% endfor %}
Run Code Online (Sandbox Code Playgroud)

我的路由功能是这样的:

@app.route('/order_history')
def orderhistory():
    db = get_db()
    cur = db.execute('select * from order_items')
    orders = cur.fetchall()
    return render_template('order_history.html', orders = orders)
Run Code Online (Sandbox Code Playgroud)

知道为什么我要获取行对象位置而不是数据库内容吗?

python sqlite flask

4
推荐指数
1
解决办法
2888
查看次数