Python Pandas字符串>十六进制>整数>字符串转换

2024-04-26 21:37:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我有来自嵌入式硬件的数据。消息以一个长的十六进制的形式出现,但是这个十六进制实际上是将几个不同的数据组连接在4个字符块中的硬件。为了混淆问题,数据库正在将这个长的十六进制转换成十进制,在我可以访问的层下面。在

我的数据帧:

dict = {'A': ['foo', 'bar', 'baz'], 'B': ['1346', '9953', '5246']}
df = pd.DataFrame(dict)

我想将列B转换成一个名为LongHex的六边形,拆分出LongHex的最后4个字符来创建{},将{}转换回一个名为ShortDec的整数,最后用=""包装LongHex和{},这样Excel就不会将一些十六进制值转换成科学的表示法。在

以下是我目前所做的尝试:

^{pr2}$

最终这个数据帧被输出到.csv。当我打开文件时,我得到的是:

foo, 1346, <built-in function hex>, nan, <type 'int'>
bar, 9953, <built-in function hex>, nan, <type 'int'>
baz, 5246, <built-in function hex>, nan, <type 'int'>

Tags: 数据in硬件footypebarfunctionbaz
1条回答
网友
1楼 · 发布于 2024-04-26 21:37:11

更改此项:

df['LongHex'] = df['B'].apply(lambda x: hex)
df['ShortDec'] = df['ShortHex'].apply(lambda x: int)

为此:

^{pr2}$

另请注意,我看到您稍后会将它们转换为字符串,为什么不一次性完成:

df['LongHex'] = df['B'].apply(lambda x: str(hex(x))[-4:])

相关问题 更多 >