从此表单的数据开始:
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
我怎么能接近这个?
答案 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)
我不确定这个的背景,但是你走了:
第一步:提取要应用的数字检查。 我认为最好的方法是使用正则表达式,比如
/.*(\ d +)/
第二步检查数字是奇数还是偶数:
result = number%2
我希望它有所帮助
答案 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]
然后您可以输出您喜欢的数据