将函数应用于 ; 分隔列(地图 ? 熊猫?)中的所有条目



我有以下数据框,想替换第三列的值(分隔符=";"(。

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

最新更新