gpt4 book ai didi

python - 将字符串二进制转换为单个位 python 数据帧

转载 作者:太空宇宙 更新时间:2023-11-04 00:28:02 25 4
gpt4 key购买 nike

我有一个看起来像这样的 pandas 数据框,并重复大约 10k 行:

     Lbl #             Value                          Time
16 160 0-00-000-0000-0000-0000-0000-00 000:00:00:00.206948
17 270 0-00-000-0000-0001-1010-0110-00 000:00:00:00.212948
18 271 1-00-000-0000-0000-0110-1110-00 000:00:00:00.215828
19 272 0-00-001-1000-0111-1111-1000-00 000:00:00:00.218708
20 273 1-00-000-0000-0000-0111-1110-00 000:00:00:00.221588
21 274 0-00-000-0000-0000-1001-0110-00 000:00:00:00.224468
22 275 0-00-001-1111-0000-0000-0000-00 000:00:00:00.227348
23 276 1-00-000-0000-0000-0000-0000-00 000:00:00:00.233428
24 277 0-00-000-0000-0000-0000-0000-00 000:00:00:00.236308
29 334 0-11-000-0000-0000-0000-0000-00 000:00:00:00.253900
63 160 0-00-000-0000-0000-0000-0000-00 000:00:00:00.458692

如何进入每个“值”标签并将其分解为 24 个对应位。最终目标是能够在数据文件的过程中绘制标签 160、位 19 以及其他一些分析。

谢谢。

编辑:MaxU 的回答有效。只是为了 future 的访问者,我最终得到的代码是:

df_bits = df_binary.Value.str.replace('-','').str.extractall('(\d)').unstack().astype(np.int8).add_prefix('b')
df_binary = pd.concat([df_binary, df_bits], axis = 1)

最佳答案

IIUC:

In [43]: df
Out[43]:
Lbl # Value Time
0 16 160 0-00-000-0000-0000-0000-0000-00 000:00:00:00.206948
1 17 270 0-00-000-0000-0001-1010-0110-00 000:00:00:00.212948
2 18 271 1-00-000-0000-0000-0110-1110-00 000:00:00:00.215828
3 19 272 0-00-001-1000-0111-1111-1000-00 000:00:00:00.218708
4 20 273 1-00-000-0000-0000-0111-1110-00 000:00:00:00.221588
5 21 274 0-00-000-0000-0000-1001-0110-00 000:00:00:00.224468
6 22 275 0-00-001-1111-0000-0000-0000-00 000:00:00:00.227348
7 23 276 1-00-000-0000-0000-0000-0000-00 000:00:00:00.233428
8 24 277 0-00-000-0000-0000-0000-0000-00 000:00:00:00.236308
9 29 334 0-11-000-0000-0000-0000-0000-00 000:00:00:00.253900
10 63 160 0-00-000-0000-0000-0000-0000-00 000:00:00:00.458692

In [44]: df.Value.str.replace('-','').str.extractall('(\d)').unstack().astype(np.int8).add_prefix('b')
Out[44]:
b0 ...
match b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 ... b14 b15 b16 b17 b18 b19 b20 b21 b22 b23
0 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 ... 1 0 1 0 0 1 1 0 0 0
2 1 0 0 0 0 0 0 0 0 0 ... 0 1 1 0 1 1 1 0 0 0
3 0 0 0 0 0 1 1 0 0 0 ... 1 1 1 1 1 0 0 0 0 0
4 1 0 0 0 0 0 0 0 0 0 ... 0 1 1 1 1 1 1 0 0 0
5 0 0 0 0 0 0 0 0 0 0 ... 1 0 0 1 0 1 1 0 0 0
6 0 0 0 0 0 1 1 1 1 1 ... 0 0 0 0 0 0 0 0 0 0
7 1 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
8 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
9 0 1 1 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
10 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0

[11 rows x 24 columns]

关于python - 将字符串二进制转换为单个位 python 数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46775546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com