小编Ale*_*lex的帖子

仅将一个键列复制到合并的DataFrame中

请考虑以下DataFrame:

df1 = pd.DataFrame({'a': [0, 1, 2, 3], 'b': list('abcd')})
df2 = pd.DataFrame({'c': list('abcd'), 'd': 'Alex'})
Run Code Online (Sandbox Code Playgroud)

在这个例子中,df1['b']并且df2['c']是关键列.合并时:

df1.merge(df2, left_on='b', right_on='c')
   a  b  c     d
0  0  a  a  Alex
1  1  b  b  Alex
2  2  c  c  Alex
3  3  d  d  Alex
Run Code Online (Sandbox Code Playgroud)

当我只需要一个时,我最终得到了结果DataFrame中的两个键列.我一直在用:

df1.merge(df2, left_on='b', right_on='c').drop('c', axis='columns')
Run Code Online (Sandbox Code Playgroud)

有没有办法只保留一个关键列?

python merge pandas

11
推荐指数
3
解决办法
1434
查看次数

在 matplotlib bar_label 中隐藏小于 n 的条形标签

我喜欢最近 matpolotlib 更新中 ax.bar_label 的易用性。

我热衷于隐藏低值数据标签以提高最终图中的可读性,以避免标签重叠。

如何在下面的代码中隐藏小于预定义值(这里假设小于 0.025)的标签?

在此输入图像描述

df_plot = pd.crosstab(df['Yr_Lvl_Cd'], df['Achievement_Cd'], normalize='index')
ax = df_plot.plot(kind = 'bar', stacked = True,  figsize= (10,12))
for c in ax.containers:
    ax.bar_label(c, label_type='center', color = "white")
Run Code Online (Sandbox Code Playgroud)

python plot matplotlib

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

命令行:Python 程序说“Killed”

我正在从 465 个网页中提取 xml 数据,并使用 python 数据框将其解析并存储在“.csv”文件中。程序运行 30 分钟后,程序保存“200.csv”文件并自行杀死。命令行执行显示“Killed”。但是当我分别运行前 200 页和其余 265 页的程序进行提取时,它运行良好。我在互联网上彻底搜索过,这个问题没有正确的答案。你能告诉我可能是什么原因吗?

for i in list:
    addr = str(url + i + '?&$format=json')
    response = requests.get(addr, auth=(self.user_, self.pass_))
    # print (response.content)
    json_data = response.json()
    if ('d' in json_data):
        df = json_normalize(json_data['d']['results'])
        paginate = 'true'
        while paginate == 'true':
            if '__next' in json_data['d']:
                addr_next = json_data['d']['__next']
                response = requests.get(addr_next, auth=(self.user_, self.pass_))
                json_data = response.json()
                df = df.append(json_normalize(json_data['d']['results']))
            else:
                paginate = 'false'
                try:
                    if(not df.empty):
                        storage = '/usr/share/airflow/documents/output/' + i + …
Run Code Online (Sandbox Code Playgroud)

python xml linux dataframe pandas

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

Argparse 字典到命名空间

argparse在 python 代码中用作参数解析器。将字典解析为 argparse 对象的最佳方法是什么?

例如,我的字典是:

{
    "activation_dropout": 0.0,
    "activation_fn": "gelu",
    "attention_dropout": 0.0,
    "beam": 1,
}
Run Code Online (Sandbox Code Playgroud)

我期望的是一个argparse.Namespace具有属性activation_dropoutactivation_fnattention_dropout和 的对象beam

我希望有一种方法argparse可以将输入作为字典并给出一个argparse名称空间作为这些变量。

python argparse

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

带有 ArgumentDefaultsHelpFormatter 和 RawTextHelpFormatter 的 Python Argparse

我将 argparse 与 Python 2.7 一起使用,我想用它来RawTextHelpFormatter获取 Epilog 中的换行符 ArgumentDefaultsHelpFormatter获取默认帮助中显示的默认值。

例如,如果 ArgumentParser 的 Epilog 部分是:

 epilog="first line\n second line"
Run Code Online (Sandbox Code Playgroud)

并且有争论:

 epilog="first line\n second line"
Run Code Online (Sandbox Code Playgroud)

帮助输出应该是:

   -d, --development   Build development code (default: False)
   -p, --production    Build production release (default: False)
first line
second line
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

python argparse

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

AttributeError: 部分初始化的模块“pandas”没有属性“DataFrame”

我想运行此代码,但我不能并收到此错误。我也下载了熊猫包。

import pandas

data = {
    "Day": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
    "Visitors": [18, 26, 18, 18, 9, 9, 20, 30, 16, 24],
    "Bounce_Rate": [77.27, 74.07, 73.68, 65, 90, 70, 72, 62.16, 81.25, 72],
}

df = pandas.DataFrame(data)
print(df)
Run Code Online (Sandbox Code Playgroud)

python attributeerror pandas

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

python列表中最常见的子列表

我有这个清单:

big_list = [['UPPER', 'UPPER', 'UPPER', 'LEI', 'DATE', 'ISIN', 'DEVISE', 'QUANTITY', 'QUANTITY', 'PRICE', 'MIC'], 
            ['UPPER', 'UPPER', 'UPPER', 'LEI', 'DATE', 'ISIN', 'DEVISE', 'QUANTITY', 'QUANTITY', 'PRICE', 'MIC'], 
            ['UPPER', 'UPPER', 'UPPER', 'LEI', 'DATE', 'ISIN', 'DEVISE', 'QUANTITY', 'QUANTITY', 'PRICE', 'MIC'], 
            ['DEVISE'], 
            ['DEVISE'], 
            ['BORING', 'QUANTITY', 'QUANTITY'], 
            ['BORING', 'BORING', 'BORING', 'BORING', 'BORING', 'UPPER', 'BORING', 'BORING', 'BORING', 'BORING', 'BORING', 'BORING'], 
            ['BORING', 'BORING', 'BORING', 'BORING', 'BORING', 'BORING', 'BORING', 'BORING', 'BORING', 'DEVISE', 'BORING', 'BORING', 'BORING', 'DEVISE', 'BORING', 'BORING', 'BORING', 'BORING', 'BORING', 'BORING'], 
            ['BORING', 'BORING', 'BORING', 'BORING', 'BORING', 'BORING', 'BORING']] …
Run Code Online (Sandbox Code Playgroud)

python algorithm list

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

如何计算在 python 上满足多个条件的行数?

我正在尝试计算数据框中的行数,其中数据框中两列的值等于“清除”。我的代码是:

pass_both_checks = len(merged_outer(([merged_outer['result_x'] == 'clear']) & [merged_outer['result_y'] == 'clear']))
Run Code Online (Sandbox Code Playgroud)

其中“merged_outer”是数据框,我希望结果是“result_x”列和“result_y”列等于“clear”的所有行的计数。

但是,我收到一个错误:

类型错误:& 不支持的操作数类型:“列表”和“列表”

我该如何解决?如果我在 pass_both_checks 的代码中只插入一个条件,它似乎工作正常。

python pandas

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

在 python 中使用嵌套循环时提高性能的任何技巧

所以,我做了这个练习,我将收到一个整数列表,并且必须找出有多少个和对是 60 的倍数

例子:

输入:list01 = [10,90,50,40,30]

结果 = 2

解释:10+50、90+30

示例2:

输入:list02 = [60,60,60]

结果 = 3

解释:list02[0] + list02[1], list02[0] + list02[2], list02[1] + list02[2]

看起来很简单,所以这是我的代码:

def getPairCount(numbers):
    total = 0
    cont = 0
    for n in numbers:
        cont+=1
        for n2 in numbers[cont:]:
            if (n + n2) % 60 == 0:
                total += 1
    return total
Run Code Online (Sandbox Code Playgroud)

它正在工作,但是,对于超过 100k+ 数字的大输入运行时间太长,并且我需要能够在 8 秒内运行,关于如何解决这个问题的任何提示?

与另一个我不知道的库一起使用或者能够在没有嵌套循环的情况下解决这个问题

python performance nested-loops

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

Bash if else语句不识别+/-字符

我试图逐行读取文件,并且每次迭代检查第五个数组元素,它将是+或 - (加号或减号)字符.我能够逐行读取文件,但不能让if/else语句识别+/-.

我写过的Bash代码

#!/bin/bash
# save the field separator
old_IFS=$IFS
while IFS=$'\t' read -r -a myArray
do 
    echo "${myArray[5]}"
    if [ $myArray[5] = "+" ]; then
       echo plus
    elif [ $myArray[5] = "-" ]; then
       echo minus
    else
        echo no
    fi
done < /Users/Alex/Desktop/test.bed

# restore default field separator 
IFS=$old_IFS 
Run Code Online (Sandbox Code Playgroud)

样本输入

Scaffold1   34  39  name    .   -
Scaffold1   12  17  name    .   -
Scaffold1   17  12  name    .   +
Scaffold1   43  49  name    .   +
Scaffold1   45  48  name …
Run Code Online (Sandbox Code Playgroud)

unix bash

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

如何使用python计算句子中单词的长度

我想计算句子中单词的长度

输入Hi Hello How Are You
输出:2 5 3 3 3

s=input("Enter the sentence:\n")
a=list(map(len, s.split()))
print(a)
Run Code Online (Sandbox Code Playgroud)

我已经尝试过这段代码,它实际上返回了正确的输出,但它是一个列表,即-Input-Hi Hello Output-[2,5]

我不希望它作为列表,我希望它作为输入-Hi Hello 预期输出- 2 5

python

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