我希望在整个数据帧列上使用lambda函数,条件是:
使“AB123456789”变为“AB2345-89”
df = pd.DataFrame({'key':['123456789','AB123456789','CD123456789','987654321'],'adj_key':['123456789','AB123456789','CD123456789','987654321']})
df['adj_key'] = df['adj_key'].apply(lambda x: (delete 3rd character & replace 4th & 3rd last character with a single dash) if (value begins with 'AB'))
结果:
key adj_key
0 123456789 123456789
1 AB123456789 AB2345-89
2 CD123456789 CD123456789
3 987654321 987654321
干杯
使用lambda函数绝对可以做到这一点。但是,您也可以对列值进行切片,并将其缩回以获得所需内容。使用这种方法,它将拾取所有数据并根据指定的3个条件进行排列。与其他回答一样,长度为7或以上的回答会得到更好的结果
我是这样做的:
其输出为:
原始数据帧:
新数据帧:
只有当所有AB字符串的长度均为>;=7:
输出:
相关问题 更多 >
编程相关推荐