小编kam*_*tor的帖子

将pandas dataframe列从十六进制字符串转换为int

我有一个非常大的数据框,我想避免遍历每一行,并希望将整个列从十六进制字符串转换为int.它不会使用astype正确处理字符串,但单个条目没有问题.有没有办法告诉astype数据类型是16?

IN:
import pandas as pd
df = pd.DataFrame(['1C8','0C3'], columns=['Command0'])
df['Command0'].astype(int)
OUT:
ValueError: invalid literal for int() with base10: '1C8'
Run Code Online (Sandbox Code Playgroud)

这有效,但希望避免行迭代.

for index, row in df.iterrows():
    print(row['Command0'])
Run Code Online (Sandbox Code Playgroud)

我正在从CSV中读取这个内容,pd.read_csv(open_csv, nrows=20)所以如果有办法读取它并明确告诉它格式是什么,那就更好了!

python hex dataframe python-3.x pandas

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

附加pandas数据帧自动转换为float但想要int

如何让pandas附加一个整数并保留整数数据类型?在我输入数据之后我意识到我可以将df.test.astype(int)添加到整个列但是如果我可以在我追加数据的时候这样做,那么这似乎是更好的方法.这是一个示例:

from bitstring import BitArray
import pandas as pd
df = pd.DataFrame()

test = BitArray('0x01')
test = int(test.hex)
print(test)
df = df.append({'test':test, 'another':5}, ignore_index=True)

print(df.test)
print(df.another)
Run Code Online (Sandbox Code Playgroud)

这是输出:

1
0    1.0
Name: test, dtype: float64
0    5.0
Name: another, dtype: float64
Run Code Online (Sandbox Code Playgroud)

它将整数更改为浮点数.

python bitstring dataframe pandas

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

解析 xml 找到具有匹配属性的最后一个元素

我有一些写得不好的 xml,我正在尝试循环并提取每个测试的测试名称、开始和结束时间。我使用该数据将一列附加到 csv 中。我当前的实现检查 xml 中的每个元素,并且似乎很慢。

这是一个 xml 示例

<ProcessStart Id="1" Type="MemTest" Name="WriteRead" Options=" /pi=5 /m=AA" Tick="1233" />
<ProcessStart Id="2" Type="MemTest" Name="WriteRead" Options=" /pi=5 /m=AA" Tick="1233" />
<ProcessStart Id="3" Type="MemTest" Name="WriteRead" Options=" /pi=5 /m=AA" Tick="1233" />
<ProcessEnd Id="1" Tick="7553"/>
<ProcessEnd Id="2" Tick="7553"/>
<ProcessEnd Id="3" Tick="7553"/>
<ProcessStart Id="17" Type="MemTest" Name="WriteRead" Options=" /pi=25 /m=AA" Tick="8126" />
<ProcessStart Id="18" Type="MemTest" Name="WriteRead" Options=" /pi=25 /m=AA" Tick="8127" />
<ProcessStart Id="19" Type="MemTest" Name="WriteRead" Options=" /pi=25 /m=AA" Tick="8127" />
<ProcessEnd Id="17" Tick="12873"/>
<ProcessEnd Id="18" Tick="12873"/>
<ProcessEnd Id="19" …
Run Code Online (Sandbox Code Playgroud)

python xml xpath parsing python-3.4

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

::"r" 与 :"=r" 汇编说明

我试图理解汇编语言的语法,首先正确地编写代码,然后高效地编写代码。在此示例中,它显示了使用的示例"=r"

asm volatile ("MRS %0, PMUSERENR_EL0\n": "=r"(value));
Run Code Online (Sandbox Code Playgroud)

这会读取寄存器的值并将其存储在值变量中。另一个例子使用::"r"

asm volatile ("MSR PMUSERENR_EL0, %0\n":: "r"(value));
Run Code Online (Sandbox Code Playgroud)

这会将值变量写入 PMUSERENR_ELO 寄存器。这是另一个例子:如何测量 ARM Cortex-A8 处理器中的程序执行时间?

当我尝试使用上述两个命令编译一个简单的测试代码时,我收到错误::9:2: error: output operand constraint lacks '='如果我添加“=”并删除一个“:”,它将编译,但当我测试它时,它只是说Illegal instruction

如果有人可以解释其中的差异,这将很有帮助,许多组装教程显示相同的格式但没有解释。如果这提供了任何见解的话,它是在 64 位 ARM 平台上进行的。谢谢。

c assembly gcc inline-assembly arm64

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

python位移numpy

我正在使用64位无符号整数,并在比特移位后比较该值,然后解码其余的位值.我正在迭代数百万个值并尝试最小化处理时间.

问题是uint64和numpy-uint64都不支持位移.我试图避免使用int64来避免负值.

示例数据:移位后的0x8204000000000080(字>> 60):= - 8#,但与0x8相比

循环一百万次,看看它需要多长时间,发现在所有方法中,'>>'移位运算符是最有效的,具有调用abs()函数的下一个最佳选项.对此有更好的解决方案吗?

循环代码:

import numpy as np
import time

start_time= time.time()
for i in range(1000000):
    x= np.int64(-1)
    x=np.right_shift(x,60)
print (time.time()-start_time)

start_time= time.time()
for i in range(1000000):
    x= np.uint64(-1)
    x=int(x/(2**60))
print (time.time()-start_time)

start_time= time.time()
for i in range(1000000):
    x= np.int64(-1)
    x=abs(x>>60)
print (time.time()-start_time)

start_time= time.time()
for i in range(1000000):
    x= np.int64(-1)
    x= x>>60
print (time.time()-start_time)
Run Code Online (Sandbox Code Playgroud)

输出:

2.055999994277954
3.1540000438690186
0.619999885559082
0.5810000896453857
Run Code Online (Sandbox Code Playgroud)

python numpy

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

访问变量而不使用列表.动态访问变量名称

我发现的所有答案都只是说使用字典或列表.我正在制作一个应用程序,并且GUI正在QT创建者中进行设计.有一系列复选框(21),在Qt Creator中都标有cb0 .... cb20.我有一个21元素列表,表示是否应该选中复选框.有没有办法循环变量名称?伪代码:

for i in range(21):
    if cbList[i]:
        cb'i'.setChecked=True
    else:
        cb'i'.setChecked=False
Run Code Online (Sandbox Code Playgroud)

如何cb'i'将i转换为变量名?

为清晰起见添加:我不想创建字典,然后将字典值设置为true或false.变量已经存在.它们是GUI中的复选框.所有复选框都是名称cb0 ... cb20.它们具有我希望为复选框的每个实例调用的函数setChecked.例如,cb0.setChecked(False)将禁用该复选框.我有一个与每个复选框对应的列表.我试图避免cb1.setChecked(True)为所有21个复选框写作.

python pyqt4 python-3.x

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