小编Rwi*_*ami的帖子

Pandas hub_table 给出错误 ValueError:名称 None 出现多次,使用级别编号

我有一个熊猫数据框

print(df.head())
Run Code Online (Sandbox Code Playgroud)
     Row ID        Order ID  Order Date  ... Quantity Discount    Profit
0       1  CA-2013-152156  09/11/2013  ...        2     0.00   41.9136
1       2  CA-2013-152156  09/11/2013  ...        3     0.00  219.5820
2       3  CA-2013-138688  13/06/2013  ...        2     0.00    6.8714
3       4  US-2012-108966  11/10/2012  ...        5     0.45 -383.0310
4       5  US-2012-108966  11/10/2012  ...        2     0.20    2.5164
Run Code Online (Sandbox Code Playgroud)

当我执行这个命令时:

ans = pd.pivot_table(data=df, index=['Segment'], columns=['Region'], values     = ['Sales'], aggfunc={'Sales':['sum', 'mean']}, margins=True, dropna=False)
Run Code Online (Sandbox Code Playgroud)

它给出了这个错误:

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

  File "/usr/local/lib/python3.6/dist-packages/pandas/core/reshape/pivot.py", line …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

C 代码的 x86 反汇编生成:orq $0x0, %(rsp)

我编写了以下 C 代码: 在此处输入图片说明

它只是分配一个包含 1000000 个整数的数组和另一个整数,并将数组的第一个整数设置为 0

我编译这个使用 gcc -g test.c -o test -fno-stack-protector

它给出了一个非常奇怪的反汇编:在此处输入图片说明

显然,它在循环中不断在堆栈上分配 4096 个字节,并且每 4096 个字节与 0“或”,然后一旦达到 3997696 个字节,它就会进一步分配 2184 个字节。然后继续将第 4000000 个字节(从未分配过)设置为 5。

为什么不分配请求的全部 4000004 字节?为什么它在每 4096 个字节“或”一个 0,这是一条无用的指令?

我在这里理解错了吗?

注意:这是用 gcc 9.3 版编译的。gcc 7.4 版不执行循环和“或”每 4096 个字节为 0,但它只分配了 3997696+2184=3999880 个字节,但仍将第 4000000 个字节设置为 5

c assembly gcc callstack x86-64

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

标签 统计

assembly ×1

c ×1

callstack ×1

gcc ×1

pandas ×1

python ×1

x86-64 ×1