我有以下数据框,想替换第三列的值(分隔符=";"(。
cat file.text
Name ID Values John 81-502 1 Mike 81-501 2;2;2 Matthew 81-512 1;0
def fun(x):
return x+1
我想应用此函数来替换数据框中的值列,以便:
cat out.txt
Name ID Values John 81-502 2 Mike 81-501 3;3;3 Matthew 81-512 2;1
首先是必需的split
值,转换为整数,添加1
,转换为字符串并按;
连接回来:
df['Values'] = df['Values'].apply(lambda x: ';'.join(str(int(y) + 1) for y in x.split(';')))
具有列表理解的解决方案:
df['Values'] = [ ';'.join(str(int(y) + 1) for y in x.split(';')) for x in df['Values']]
print (df)
Name ID Values
0 John 81-502 2
1 Mike 81-501 3;3;3
2 Matthew 81-512 2;1