Dataframe Pandas中的十进制TO二进制

时间:2017-07-10 17:48:31

标签: python pandas dataframe binary decimal

我有一个数据集,并试图通过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'

2 个答案:

答案 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

我相信这就是你要找的东西。