小编jmd*_*_dk的帖子

遍历熊猫数据框列表

两个快速的熊猫问题供您选择。

  1. 我有一个要应用过滤器的数据框列表。

    countries = [us, uk, france]
    for df in countries:
        df = df[(df["Send Date"] > '2016-11-01') & (df["Send Date"] < '2016-11-30')] 
    
    Run Code Online (Sandbox Code Playgroud)

    当我运行它时,df之后不会更改。这是为什么?如果我遍历数据帧以创建一个新列,如下所示,则可以正常工作,并更改列表中的每个df。

     for df in countries:
          df["Continent"] = "Europe"
    
    Run Code Online (Sandbox Code Playgroud)
  2. 作为后续问题,当我创建不同国家的数据框列表时,我注意到了一些奇怪的事情。我定义了列表,然后将转换应用于列表中的每个df。在转换了这些不同的dfs之后,我再次调用了该列表。我很惊讶地看到列表仍然指向未更改的数据帧,因此我不得不重新定义列表以更新结果。有人能解释为什么会这样吗?

python list pandas

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

计算函数的递归调用

我有一个加泰罗尼亚数字的递归代码.我设法写了递归调用,但由于某种原因,计数器无法正常工作.例如,第7个加泰罗尼亚语号码的呼叫数量应为1215.返回值必须是加泰罗尼亚语号码和呼叫数量的元组,例如:(429,1215).原始代码:

def catalan_rec(n):
    if n<=1:
        return 1
    res=0
    for i in range(n):
        res+=catalan_rec(i)*catalan_rec(n-i-1)
    return res
Run Code Online (Sandbox Code Playgroud)

柜台代码:

def catalan_rec_count(n,counter=1):
    if n<=1:
        return 1
    res=0
    for i in range(n):
        res+=catalan_rec_count(i,counter+1)*catalan_rec_count(n-i-1,counter+1)        
    return (res,counter)
Run Code Online (Sandbox Code Playgroud)

提前致谢!

python recursion

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

在旧版本的 gcc 上使用 `-Wno-implicit-fallthrough`

我有一个在 gcc 4.8.4 下构建良好的项目。我尝试使用 gcc 7 构建,并注意到很多-Wimplicit-fallthrough=警告。据我所知,这确实是在 gcc 版本 7 中添加的。我现在-Wno-implicit-fallthrough在构建时使用以抑制这些警告。移动回旧版本的gcc,保持-Wno-implicit-fallthrough编译器标志并不会导致任何错误,即使我不相信GCC 4识别此选项。怎么来的?特别是-Wno-允许不被识别的选项吗?

linux gcc suppress-warnings gcc-warning fall-through

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

Sphinx RTD 主题:更改内联代码的颜色

我将Sphinx“阅读文档”主题一起使用。对于小型内联代码片段,例如在一段文本中提及单个变量,我使用双反引号将代码格式化为文档中所谓的“内联文字

  1. 这是格式化内联代码片段的正确方法吗?

与正确的代码块不同,内联代码片段不会执行特定于语言的语法突出显示(这很好)。如上面的链接文档所示(请参见下面的屏幕截图),所有此类“内联文字”都被涂成红色。

在此输入图像描述

  1. 我怎样才能把这个颜色变成别的颜色?

我只关心 Sphinx 的 HTML 输出。

html documentation python-sphinx read-the-docs

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

c中正常指针和const指针之间的区别

实际上我不知道普通指针和const指针有什么区别,如果我使用下面的代码,它将正常工作.但是当我改变constint *ptr=&num;那时它将无法工作.谁能解释普通指针和const指针之间的区别?

 int main(void)
    {
        int num = 20;
     int  *ptr = &num ; // if i change to   `int *const ptr = &var1;` then it shows some error

     *ptr = 20 ;              // Valid 
     ptr ++ ;                 // valid

        return 0;
    }
Run Code Online (Sandbox Code Playgroud)

c pointers

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

'dict'对象没有属性'read'

敬启者,

我的代码错误有什么不对?

>>> import json
>>> array = json.load({"name":"Galen","learning objective":"load json files for data analysis"})
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    array = json.load({"name":"Galen","learning objective":"load json files for data analysis"})
  File "C:\Python34\lib\json\__init__.py", line 265, in load
    return loads(fp.read(),
AttributeError: 'dict' object has no attribute 'read'
Run Code Online (Sandbox Code Playgroud)

python attributes json

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

在变量名称中使用Python时,无法区分某些Unicode字符

问题

在编写Python 3代码时,我在变量名中使用Unicode文字使我很高兴。今天我有一个奇怪的错误,原来是由于Python无法区分变量??,如下面的短代码所示:

? = 'hello'
? = 'goodbye'
print(?)  # Prints 'goodbye'
Run Code Online (Sandbox Code Playgroud)

这是错误还是功能?如果是后者,我如何/在哪里可以找到以这种方式一起属于所有这些字符的集合?

进一步探索

??在字符串中使用时,不存在这种区别:

a = '?'
b = '?'
print(a == b)  # Prints False
Run Code Online (Sandbox Code Playgroud)

这使我确信这不是我的编辑器/终端的编码问题。

我们还可以使用以下unicodedata模块来确认Python完全了解我们正在处理的字符:

import unicodedata
print(unicodedata.name('?'))  # Prints 'GREEK SMALL LETTER RHO'
print(unicodedata.name('?'))  # Prints 'GREEK RHO SYMBOL'
Run Code Online (Sandbox Code Playgroud)

我在?(GREEK SMALL LETTER PHI)和?(GREEK PHI SYMBOL)之间发现了相同的行为。

python unicode python-3.x python-unicode

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

为什么不能在f字符串中使用反斜杠?

在Python> = 3.6中,f-strings可以用作方法的替代品str.format.举个简单的例子,它们是等价的:

'{} {}'.format(2+2, "hey")
f'{2+2} {"hey"}'
Run Code Online (Sandbox Code Playgroud)

忽略格式说明符,我基本上可以str.format在f字符串中移动内部大括号的位置参数.请特别注意,我可以将str文字放在这里,虽然看起来有点笨拙.

但是有一些限制.具体来说,任何形状或形式的反斜杠都不允许在f字符串的大括号内:

'{}'.format("new\nline")  # legal
f'{"new\nline"}'          # illegal
f'{"\\"}'                 # illegal
Run Code Online (Sandbox Code Playgroud)

\如果它在支架内,我甚至不能用它来分开一条长线;

f'{2+\
2}'     # illegal
Run Code Online (Sandbox Code Playgroud)

即使\在正常情况下完全允许这种用法str;

'{\
}'.format(2+2)  # legal
Run Code Online (Sandbox Code Playgroud)

在我看来,如果它\在f字符串的大括号内完全看到字符,则会将硬停止编码到解析器中.为什么要实施此限制?虽然文档指定了这种行为,但它并不能证明原因.

python string-formatting backslash python-3.x f-string

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

Matplotlib:检查空图

我有一个循环加载并绘制一些数据,如下所示:

import os
import numpy as np
import matplotlib.pyplot as plt

for filename in filenames:
    plt.figure()
    if os.path.exists(filename):
        x, y = np.loadtxt(filename, unpack=True)
        plt.plot(x, y)
    plt.savefig(filename + '.png')
    plt.close()
Run Code Online (Sandbox Code Playgroud)

现在,如果文件不存在,则不会加载或绘制数据,但仍会保存(空)图。在上面的例子中,我可以简单地通过pltif语句中包含所有调用来纠正这个问题。我的实际用例涉及更多,所以我正在寻找一种方法来询问matplotlib/ plt/图形/轴 图形/轴是否完全为空。就像是

for filename in filenames:
    plt.figure()
    if os.path.exists(filename):
        x, y = np.loadtxt(filename, unpack=True)
        plt.plot(x, y)
    if not plt.figure_empty():  # <-- new line
        plt.savefig(filename + '.png')
    plt.close()
Run Code Online (Sandbox Code Playgroud)

python matplotlib figure python-3.x

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

Python argparse:参数中的前导破折号

我正在使用Python的argparse模块来解析命令行参数。考虑下面的简化示例,

# File test.py
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-s', action='store')
parser.add_argument('-a', action='append')
args = parser.parse_args()
print(args)
Run Code Online (Sandbox Code Playgroud)

可以成功地称为

python test.py -s foo -a bar -a baz
Run Code Online (Sandbox Code Playgroud)

每个参数-s前后都需要一个参数-a,如果使用引号,则参数可以包含空格。但是,如果参数以破折号(-)开头且不包含任何空格,则代码将崩溃:

python test.py -s -begins-with-dash -a bar -a baz
Run Code Online (Sandbox Code Playgroud)

错误:参数-s:预期一个参数

我知道它被解释-begins-with-dash为新选项的开始,这是非法的,因为-s尚未收到其必需的参数。尽管-begins-with-dash还没有定义带有名称的选项,但也很清楚,因此它不应该首先将其解释为选项。如何使argparse一个或多个前导破折号接受参数?

python parsing command-line-arguments argparse python-3.x

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