小编Jim*_*ard的帖子

在分组后使用mean和std绘制错误栏

我有以下数据帧:

                    mean       std
insert quality                    
0.0    good     0.009905  0.003662
0.1    good     0.450190  0.281895
       poor     0.376818  0.306806
0.2    good     0.801856  0.243288
       poor     0.643859  0.322378
0.3    good     0.833235  0.172025
       poor     0.698972  0.263266
0.4    good     0.842288  0.141925
       poor     0.706708  0.241269
0.5    good     0.853634  0.118604
       poor     0.685716  0.208073
0.6    good     0.845496  0.118609
       poor     0.675907  0.207755
0.7    good     0.826335  0.133820
       poor     0.656934  0.222823
0.8    good     0.829707  0.130154
       poor     0.627111  0.213046
0.9    good     0.816636  0.137371
       poor     0.589331  0.232756
1.0    good     0.801211  0.147864
       poor     0.554589  0.245867
Run Code Online (Sandbox Code Playgroud)

如果想要绘制2条曲线(点+误差),使用索引列作为X轴 …

python plot matplotlib pandas

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

处理多个 KeyError 异常的更优雅的方法

我有以下函数,它读取 adict并影响局部变量的一些值,然后将其作为元组返回。

问题是字典中可能不存在某些所需的键。

到目前为止,我已经有了这段代码,它可以实现我想要的功能,但我想知道是否有更优雅的方法来实现它。

def getNetwork(self, search):

    data = self.get('ip',search)
    handle         = data['handle']
    name           = data['name']
    try:
        country        = data['country']     
    except KeyError:
        country = ''
    try:       
        type           = data['type']
    except KeyError:
        type = ''
    try:                
        start_addr     = data['startAddress']
    except KeyError:
        start_addr = ''
    try:                 
        end_addr       = data['endAddress']
    except KeyError:
        end_addr = '' 
    try:                  
        parent_handle  = data['parentHandle']
    except KeyError:
        parent_handle = ''   
    return (handle, name, country, type, start_addr, end_addr, parent_handle)
Run Code Online (Sandbox Code Playgroud)

我有点害怕很多,try: except:但如果我把所有的影响都放在一个单一的里面,try: except:一旦第一个缺失的字典键引发错误,它就会停止影响值。

python json python-3.x rdap

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

使用字符串中的"+"符号连接列表项

我希望我的输出是:

Enter a number : n
List from zero to your number is : [0,1,2,3, ... , n]
0 + 1 + 2 + 3 + 4 + 5 ... + n = sum(list)
Run Code Online (Sandbox Code Playgroud)

但我的实际输出是:

Enter a number : 5
List from zero to your number is :  [0, 1, 2, 3, 4, 5]
[+0+,+ +1+,+ +2+,+ +3+,+ +4+,+ +5+] =  15
Run Code Online (Sandbox Code Playgroud)

我正在使用join它,因为它是我所知道的唯一类型.

为什么在物品周围印有加号,为什么它们围绕着空白?

我应该如何将list字符串的值打印到字符串中供用户阅读?

谢谢.这是我的代码:

##Begin n_nx1 application
n_put = int(input("Choose a number : ")) …
Run Code Online (Sandbox Code Playgroud)

python list python-3.x

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

重置lru_cache中的缓存

有没有什么办法可以覆盖lru_cachePython中的?

具体来说,如果我有一个函数,例如:

  import functools

  @functools.lru_cache(maxsize=None)
  def function_of_interest(variables):

       ...
       return(processed_values)
Run Code Online (Sandbox Code Playgroud)

是否可以重置缓存,从而运行该函数?

python caching python-3.x

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

类型错误:“方法”类型的对象没有 len()

def DS():
import os
import pandas as pd

directory=input('What folder would you like to work in? ( Example: /Users/hem/Desktop/pythontest/ ')
filename=input('Please enter the name (including .csv) of the file you would like to analyze  ' ) 
idkey=input('What is the subject ID you are analyzing?    '   )
sessionkey=input('What session of testing are you analyzing?   ')      
print('---------- Calculating Drug Stroop endpoints ----------')
os.chdir(directory)
dataframe = pd.read_csv(filename, error_bad_lines=False)
output={}

CategoryID = dataframe['CategoryID'].tolist
ReactionTime = dataframe['ReactionTime'].tolist
CorrectResponse = dataframe['CorrectResponse'].tolist

#Stroop interference score
totalN = …
Run Code Online (Sandbox Code Playgroud)

python python-3.x pandas

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

os.getenv()不断返回None

我似乎无法让我的代码响应自定义环境变量,因此我编写了一段代码对其进行测试。getenv没有将我在BASH中设置的环境变量提取到我的python代码中。您能提供的任何帮助将不胜感激。

$ FRUSTRATION="PYTHON!!"
$ echo FRUSTRATION
PYTHON!!
export FRUSTRATION
ipython
import os
very_frustrated = os.getenv("FRUSTRATION")
print(very_frustrated)
None
Run Code Online (Sandbox Code Playgroud)

python getenv python-3.x

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

如何在熊猫中阅读.txt

我正在尝试将包含两个数据系列的txt文件拉入pandas.到目前为止,我已经尝试了下面的变体,我从堆栈上的其他帖子中获取.到目前为止,它只会作为一个系列阅读.

我正在使用的数据可在此处获得

icdencoding = pd.read_table("data/icd10cm_codes_2017.txt", delim_whitespace=True, header=None)
icdencoding = pd.read_table("data/icd10cm_codes_2017.txt", header=None, sep="/t")
icdencoding = pd.read_table("data/icd10cm_codes_2017.txt", header=None, delimiter=r"\s+")
Run Code Online (Sandbox Code Playgroud)

我确定我做的事情显然是错的,但是我看不到它.

python python-3.x pandas

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

如何使用2个拆分参数拆分字符串?

例:

r="\\%4l\\%(wit.*wit\\)\\|\\%8l\\%(rood.*rood\\)\\|\\%12l\\%(blauw.*blauw\\)\\|\\%13l\\%(wit.*wit\\)\\|\\%14l\\%(blauw.*blauw\\)\\|\\%15l\\%(wit.*wit\\)\\|\\%16l\\%(wit.*wit\\)\\|\\%17l\\%(rood.*rood\\)\\|\\%19l\\%(wit.*wit\\)\\|\\%21l\\%(blauw.*blauw\\)"
Run Code Online (Sandbox Code Playgroud)

我想将字符串拆分为一个列表,但不使用1个参数而是使用2个参数.

  • 首先,我想先捕捉这个数字 l\\%(
  • 其次我想在\\%(和之间捕获文本,\\)\\|或者在\\%(和之间的字符串结尾处捕获文本\\)$

输出:

[[4, "wit.*wit"], [8, "rood.*rood"], [12, "blauw.*blauw"], [13, "wit.*wit"], [14, "blauw.*blauw"], [15, "wit.*wit"], [16,"wit.*wit"], [17, "rood.*rood"], [19, "wit.*wit"], [21, "blauw.*blauw"]]
Run Code Online (Sandbox Code Playgroud)

我尝试的是将字符串拆分为,\\|然后用每个不需要的字符替换"".

有没有更好的方法在Python中执行此操作?

python regex split list python-3.x

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

有没有理由在Python 2中仍然可以修改True和False?

内置常量,True并且至少在3.3中在Python 3中False不可修改的:

bool类型的错误值.作业False是非法的并且提出了SyntaxError.

bool类型的真正价值.作业True是非法的并且提出了SyntaxError.

但是,在python 2.7中,代码True = 0执行时没有任何异常.似乎这些限制很久以前应该被移植到2.x,但它们没有.

我能想到的唯一原因是与现有代码库的兼容性.您是否知道现有软件故意修改TrueFalse?如果没有,还有什么其他原因?

python constants python-2.7 python-3.x

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

numpy中连续整数的总和不正确

100,000,000使用以下方法对第一个正整数求和:

import numpy as np
np.arange(1,100000001).sum()
Run Code Online (Sandbox Code Playgroud)

我返回:987459712,它与公式不匹配:N(N+1)/2for N=100000000。即,公式返回5000000050000000

在发布之前,我写了以下内容,返回True

np.arange(1,65536).sum() == ((65535+1) * 65535)/2
Run Code Online (Sandbox Code Playgroud)

然而,这个数字65536似乎是一个关键点,因为

np.arange(1,65537).sum() == ((65536+1) * 65536)/2
Run Code Online (Sandbox Code Playgroud)

返回False

对于大于65536代码的False整数返回,而低于此阈值的整数返回True

有人可以解释我在计算总和时做错了什么,或者代码发生了什么?

python numpy sum python-3.x

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

标签 统计

python ×10

python-3.x ×9

pandas ×3

list ×2

caching ×1

constants ×1

getenv ×1

json ×1

matplotlib ×1

numpy ×1

plot ×1

python-2.7 ×1

rdap ×1

regex ×1

split ×1

sum ×1