如何将偶数或奇数的字符串转换为0或1?

时间:2017-11-15 20:26:36

标签: python pandas

从此表单的数据开始:

    col_1   col_2
0   a1      a6
1   a3      a7
2   a4      a2
3   a5      a8

其中值是最后带数字的字母。我想将值转换为0或1,具体取决于结束字符串的奇偶校验或奇数,到数据帧:

    col_1   col_2
0   1       0
1   1       1
2   0       0
3   1       0

我怎么能接近这个?

4 个答案:

答案 0 :(得分:1)

使用str.extract

df = df.apply(lambda x: ((x.str.extract('(\d+)', expand = False)).astype(int) % 2 != 0).astype(int))


    col_1   col_2
0   1       0
1   1       1
2   0       0
3   1       0

答案 1 :(得分:1)

import re
df.applymap(lambda x : int(re.findall(r'\d+',x)[0])%2)
Out[866]: 
   col_1  col_2
0      1      0
1      1      1
2      0      0
3      1      0

答案 2 :(得分:0)

我不确定这个的背景,但是你走了:

  1. 第一步:提取要应用的数字检查。 我认为最好的方法是使用正则表达式,比如

    /.*(\ d +)/

  2. 第二步检查数字是奇数还是偶数:

    result = number%2

  3. 我希望它有所帮助

答案 3 :(得分:0)

如果您在列表列表(dataList)中有数据,则可以使用

newData = []
for lst in dataList:
    data = []
    for item in lst:
        num = int(item[1::])%2
        data.append(num)
    newData.append(data)

输出

[1, 0]
[1, 1]
[0, 0]
[1, 0]

然后您可以输出您喜欢的数据