我有一个数据集,并试图通过Pandas数据帧读取。我想将其中一列十进制值转换为二进制。我有三列,希望将第二列的值更改为二进制。我尝试了format(n, 'b')
功能如下,但没有成功!谁能告诉我该怎么办?
df = pd.read_csv('health.csv', header=None)
format( health.iloc[:,1], 'b')
我得到的错误是这样的:
ValueError: Unknown format code 'b' for object of type 'str'
答案 0 :(得分:0)
这应该有效:
health.iloc[:,1].astype(int).map('{:b}'.format)
答案 1 :(得分:-1)
你想用:
Health.Col.apply(lambda x: format(int(x), '04b'))
其中Col
是您要转换的列名。
格式不适用于字符串,因此您需要在获取二进制字符串表示之前将输入转换为整数('04b'只是表示4位)。
示例:
A B
0 a 1
1 a 2
2 a 3
3 a 4
df['C'] = df.B.apply(lambda x: format(int(x), '04b'))
# A B C
#0 a 1 0001
#1 a 2 0010
#2 a 3 0011
#3 a 4 0100
我相信这就是你要找的东西。