小编gmo*_*lau的帖子

Pandas:如何连接具有不同列的数据框?

我试图在官方Pandas 文档中找到答案,但发现它比帮助更令人困惑。基本上我有两个具有重叠但不相同的列列表的数据框:

df1:
   A   B
0  22  34
1  78  42

df2:
   B   C
0  76  29
1  11  67
Run Code Online (Sandbox Code Playgroud)

我想合并/连接/附加它们,以便结果是

df3:
   A   B   C
0  22  34  nan
1  78  42  nan
2  nan 76  29
3  nan 11  67
Run Code Online (Sandbox Code Playgroud)

应该相当简单,但我尝试了几种直观的方法,但总是出错。有谁能够帮助我?

python dataframe pandas

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

组合声明/赋值之前是否存在局部变量?

我目前正在尝试调试一个小型C程序,其一般结构如下所示:

int some_function(...) {
    ...
    size_t buf_len = some_other_function(...)
    ...
}

main() {
    ...
    int foo = some_function(...)
    ...
}
Run Code Online (Sandbox Code Playgroud)

我设置了一个断点some_function()(使用lldb).但是,如果我在此断点处检查堆栈帧,它将显示buf_len已存在的具有本地范围的变量,甚至具有任意(?)值.如果在此函数之前未在任何地方声明变量,这怎么可能?

c variables

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

在单元测试中模拟对象时避免类型警告?

假设我有一个函数,它接受一个复杂的对象并用它做一些事情:

def foo(bar: SomeComplexObject):
    ...
Run Code Online (Sandbox Code Playgroud)

在单元测试bar中将被替换为模拟对象,但课程现在会引发类型警告。我应该简单地忽略或抑制这些还是有适当的方法来处理它们(当然不改变原始函数签名)?

更新:我现在已经看到这是mypy 上的一个悬而未决的问题,但它已经处于这种状态两年多了。是否就如何解决这个问题达成了共识?

python python-unittest python-unittest.mock mypy

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

将Python文档字符串从reStructured Text转换为Google风格的简单方法?

现在有人以简单的方式将现有项目中的所有文档字符串从reStructured Text转换为Google格式吗?

看起来拿破仑可以做类似的事情,但看起来很复杂,所以我想我以前是否有人这样做过.任何想法将不胜感激.

python docstring google-style-guide python-sphinx sphinx-napoleon

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

如何在 protobuf 结构中使用整数?

我注意到当将 Python 字典转换为 google.protobuf.Struct 时,整数会变成浮点数,即:

my_dict = {'id': 42}
Run Code Online (Sandbox Code Playgroud)

变成这样:

fields {
    key: "id"
    value {
        number_value: 42.0
    }
}
Run Code Online (Sandbox Code Playgroud)

这是非常不幸的,但是查看structproto 定义似乎这是设计使然,因为确实只有双精度值。

有谁知道这是什么原因,有没有办法解决这个问题,而无需手动跟踪哪些数字是整数,哪些是浮点数?

int protocol-buffers

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

可以使用 * 运算符解包的对象的正确类型注释?

应使用运算符解包的对象的正确类型注释是什么*,即foo在这个(随机)示例中:

def some_function(foo):
    ... = bar(*foo)
Run Code Online (Sandbox Code Playgroud)

我知道它*可以解压元组和列表,但它是否仅限于这两个类,或者它是否有任何类型的接口可以使其可用于其他集合?

python types mypy

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

C:将字节数组声明为 uint8_t 有问题吗?

我正在开发一个使用字节数组的小型网络应用程序。传统上,这些将用类似的东西来声明char buf[] = ...

这似乎是大多数教程中(仍然?)完成的方式,但它存在一个问题,即它可能会掩盖实际发生的情况,例如,当您尝试打印这样的数组并忘记并非每个字符都是可见字符时。

有些人建议您应该chars完全停止使用,而使用现代的uint8_t. 我发现这非常有吸引力,主要是基于显式优于隐式的原则。

那么,将这些类型的数组声明为 是否有问题uint8_t buf[] = ...

c arrays char stdint uint8t

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

在Python中可以使用模块常量作为默认函数参数吗?

基本上是这样的:

DEFAULT_TIMEOUT = 10
# or even: from my_settings import DEFAULT_TIMEOUT

def get_google(timeout=DEFAULT_TIMEOUT):
    return requests.get('google.com', timeout=timeout)
Run Code Online (Sandbox Code Playgroud)

我认为只要常数确实保持不变,就应该可以正常工作。但我有时会看到这样的模式:

DEFAULT_TIMEOUT = 10

def get_google(timeout=None):
    if timeout is None:
        timeout = DEFAULT_TIMEOUT
    return requests.get('google.com', timeout=timeout)
Run Code Online (Sandbox Code Playgroud)

这些是等效的还是我应该更喜欢其中一个?

python function function-parameter

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

使用 attrs 将 JSON 转换为 Python 类

我想知道是否可以使用attrs库将嵌套的 JSON 转换为 Python 类实例,以便我可以通过点符号 ( object.attribute.nested_attribute)访问该 JSON 中的属性。

我的 JSON 有一个固定的架构,我可以手动定义该架构的类,但我不确定是否可以将 JSON 转换为嵌套类结构而不必实例化每个嵌套对象个别。我基本上是在寻找一个fromdict()知道(基于键)将 JSON 对象转换为哪个类的函数。

(我也知道还有其他方法可以构建“DotDicts”,但这些对我来说似乎总是有点老套,可能需要进行彻底的测试来验证它们是否正常工作。)

python json python-attrs

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

区分类型别名和实际类的约定?

类型模块允许将复杂类型签名分配给别名,然后可以与实际类型互换使用。这似乎有一个问题,它将类型别名与实际的类混淆,即在这样的定义中

def foo(obj: MyComplexObject):
    ...
Run Code Online (Sandbox Code Playgroud)

无法判断是MyComplexObject在某个地方作为类实现还是只是类型别名。对我来说,这似乎是一个不幸的混乱来源,特别是当(重新)使用别名远离其原始定义时。这是普遍接受的还是有一个约定以某种方式区分类型别名和实际的类?

python type-hinting mypy

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