小编Ema*_*mac的帖子

Python Pandas返回DataFrame,其中value count高于设定的数字

我有一个Pandas DataFrame,我想仅在客户编号超过设定次数时才返回DataFrame.

以下是DataFrame的示例:

114  2017-04-26      1       7507       34      13
115  2017-04-26      3      77314       41      14
116  2017-04-27      7       4525      190     315
117  2017-04-27      7       5525       67      94
118  2017-04-27      1       6525       43     378
119  2017-04-27      3       7415       38      27
120  2017-04-27      2       7613       47      10
121  2017-04-27      2      77314        9       3
122  2017-04-28      1        227       17       4
123  2017-04-28      8       4525      205     341
124  2017-04-28      1       7415       31      20
125  2017-04-28      2      77314        8       2
Run Code Online (Sandbox Code Playgroud)

以下是该客户使用此代码发生的次数超过5次:

print(zip_data_df['Customers'].value_counts()>5)

7415      True
4525 …
Run Code Online (Sandbox Code Playgroud)

python pandas

4
推荐指数
3
解决办法
6653
查看次数

熊猫在下一个星期天为每一行返回

在 Pandas for Python 中,我有一个数据集,其中有一列日期时间。我需要为每一行创建一个新列,其中包含下一个星期日的日期。

我尝试了各种方法尝试使用 iterrows 然后找出一周中的哪一天,并添加一天直到那天是 7,但它没有用,我什至不确定我将如何返回日期而不仅仅是天数。我也不觉得 iterrows 是最好的方法。

从日期列返回下一个星期日的列的最佳方法是什么?

python datetime date pandas

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

psycopg2 Python 在 postgresql 字段中连接百分比“%”

这是一个非常具体的问题,但我正在通过 Python 运行一个自动化脚本,该脚本使用 psycopg2 运行 Postgresql 查询。其中一个字段返回百分比,但不是将它们显示为整数,我想在每个数字后添加一个百分比。例如,我的查询中有这一行:

CASE WHEN (delivered_orders != 0) then round((scanned_deliveries::numeric 
/ delivered_orders::numeric)*100) when delivered_orders = 0  then 0 end as 
scan_percent
Run Code Online (Sandbox Code Playgroud)

因此,如果有 4 个订单和 3 个被扫描,它将返回 75。我希望它返回 75%。我试过将它与 || 连接起来 '%' 和 || % 在“结束”之后,但 Python 将百分比视为占位符,它说元组超出范围,因为我没有足够的值。我也尝试过将它用作占位符,然后在执行 cursor.execute(query, ('%')) 时放入 '%' 但它说:

值错误:不支持的格式字符

我也尝试了其他一些事情。我正在用头撞墙,以为你们聪明人可能知道我需要做什么。谢谢你的帮助!

python postgresql psycopg2

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

熊猫数据框从指定列中选择具有最高值的整行

我有一个数据框,我想在其中返回包含指定列中最大值的完整行。所以说我创建一个像这样的数据框:

df = pd.DataFrame(np.random.randint(0,100,size=(25, 4)), columns=list('ABCD'))
Run Code Online (Sandbox Code Playgroud)

然后我会有一张这样的表(对不起,我无法形成合适的表,所以我只做了一个简短的表):

A    B    C    D
14   67   35   22
75   21   34   64
Run Code Online (Sandbox Code Playgroud)

假设它像这样持续25行。我想获取列C的前5个最大值并返回这些完整的行。

如果我做:

df['C'].nlargest()
Run Code Online (Sandbox Code Playgroud)

它返回这5个最大值,但是我希望它返回整行。

我以为下面的方法可以工作,但是它给我一个错误“ IndexError:索引超出范围”:

df[df['C'].nlargest()]
Run Code Online (Sandbox Code Playgroud)

我知道这对这里的许多人来说将是一个简单的解决方案,但这让我很沮丧。谢谢你的帮助。

python pandas

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

Python Sendgrid 将抄送添加到电子邮件

我正在使用 Python 的 SendGrid。我想通过电子邮件抄送一些人。似乎他们可能不再支持对电子邮件进行抄送,尽管我不确定这是真的吗?但肯定有办法解决它,但我很惊讶我找不到太多支持。

这是我的基本代码:

sg = sendgrid.SendGridAPIClient(apikey='*****')
from_email = Email(sender_address, sender_name)
to_email = Email(email_address)
subject = subject
content = Content("text/plain", email_message)
mail = Mail(from_email, subject, to_email, content)
response = sg.client.mail.send.post(request_body=mail.get())
Run Code Online (Sandbox Code Playgroud)

我该如何修改它以便它会在电子邮件中抄送某人?

python sendgrid

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

Pandas 查找预算下的所有行组合

我试图找出一种方法来确定 DataFrame 中低于预算的所有可能的行组合,所以假设我有一个这样的数据帧:

data = [['Bread', 9, 'Food'], ['Shoes', 20, 'Clothes'], ['Shirt', 15, 'Clothes'], ['Milk', 5, 'Drink'], ['Cereal', 8, 'Food'], ['Chips', 10, 'Food'], ['Beer', 15, 'Drink'], ['Popcorn', 3, 'Food'], ['Ice Cream', 6, 'Food'], ['Soda', 4, 'Drink']]
df = pd.DataFrame(data, columns = ['Item', 'Price', 'Type'])
df
Run Code Online (Sandbox Code Playgroud)

数据

Item       Price  Type
Bread      9      Food
Shoes      20     Clothes
Shirt      15     Clothes
Milk       5      Drink
Cereal     8      Food
Chips      10     Food
Beer       15     Drink
Popcorn    3      Food
Ice Cream  6      Food
Soda       4      Drink …
Run Code Online (Sandbox Code Playgroud)

python python-itertools dataframe pandas

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

Seaborn Python xtick 标签不会旋转

我很抱歉再次问这个问题,因为我知道这之前已经被问过几次了,我已经研究了我可以在其他所有线程上找到的所有其他解决方案,但没有一个对我有用。无论我尝试什么,这些 xlabels 仍然总是水平出现并混杂在一起。我不知道为什么我的不工作而其他人工作,但我怀疑这与我在图中有三个子图有关。

我已经尝试了以下,以及许多其他的事情:

ax1.set_xticklabels(rotation=30) <-- 什么也没发生

axs[0].set_xticklabels(rotation=30) <-- 错误

plt.xticks(rotation=45) <-- 什么也没发生

这是代码和图。

    customer_rev_df = pd.DataFrame(customer_rev, columns='Week Revenue Pieces Stops'.split())
    print(customer_rev_df.set_index('Week'))
    sns.set_style(style='whitegrid')
    fig, axs = plt.subplots(ncols=3, figsize=(16, 6))
    ax1 = sns.factorplot(x='Week', y='Revenue', data=customer_rev_df, ax=axs[0])
    ax2 = sns.factorplot(x='Week', y='Stops', data=customer_rev_df, ax=axs[1])
    ax3 = sns.factorplot(x='Week', y='Pieces', data=customer_rev_df, ax=axs[2])
    axs[0].set_ylabel('Revenue')
    axs[1].set_ylabel('Stops')
    axs[2].set_ylabel('Pieces')
    axs[0].set_title('Weekly Revenue')
    axs[1].set_title('Weekly Stops')
    axs[2].set_title('Weekly Pieces')
    plt.tight_layout()
    fig.show()
Run Code Online (Sandbox Code Playgroud)

我的图的例子

我承认我还比较新,所以放轻松!任何帮助将不胜感激。谢谢!

python matplotlib seaborn

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

Openpyxl Python - Vlookup 遍历行

我正在尝试自动化我们拥有的每日报告,并且我使用查询来提取数据并使用 openpyxl 将其写入 Excel 中,然后在 openpyxl 中执行 vlookup 以匹配单元格值。不幸的是,我对如何迭代行以查找要查找的单元格值感到困惑。

for row in ws['E5:E91']:
    for cell in row:
        cell.value = "=VLOOKUP(D5, 'POD data'!C1:D87, 2, FALSE)"
Run Code Online (Sandbox Code Playgroud)

它有效,但我不知道如何更改D5值以查找D6D7D8等,具体取决于我所在的行。老实说,我不知道如何最好地解决这个问题。显然,我不想为每一行都写出公式,而且一旦我得到它,我还想对其他列执行此操作。

python excel openpyxl

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

Python在for循环中拆分列表中的字符串

我创建了一个如下所示的地址列表:

['123 Home Court || 456 Jeopardy Lane','456 Jeopardy Lane || 789 Sesame Street','789 Sesame Street || 7221 Long Road']

我想用"||"拆分它们 在for循环中(它需要在for循环中,因为我想对项目做其他工作),但它不按我预期的方式工作.我想对列表中的每个项目执行此操作:

start, end = addresses[0].split('||')
Run Code Online (Sandbox Code Playgroud)

但如果我尝试:

for i in addresses:
    start, end = addresses[i].split('||')
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

TypeError:list indices必须是整数或切片,而不是str

有人可以帮我弄清楚如何在for循环中正确执行此操作吗?另外,为什么它会给我这个错误?一如既往地感谢您的帮助!

python

-1
推荐指数
1
解决办法
380
查看次数