我正在尝试删除DF列中每个字符串中的第3个和第4个字母。每次都是不同的字母,所以我不知道如何使用正则表达式来完成。 例如,如果我的DF是:
{A B C
'32435' 3 5
'45243' 2 4}
我正在尝试将其转换为:
{A B C
'325' 3 2
'453' 2 4}
答案 0 :(得分:1)
df['A']=df['A'].str[:2]+df['A'].str[-1]
答案 1 :(得分:0)
您可以为此使用以下代码:
DF["A"] = DF["A"].map(lambda x: str(x)[0:2]+str(x)[4])
这将使A列为:
"325"
"453"
此方法比建议的其他方法更快,更有效。
答案 2 :(得分:0)
如果不能保证A列的长度为5,那么首先检查该列可能会有所帮助:
df = pd.DataFrame({'A':['32435','45243','123']})
def stripstring(s):
# put in try except in case string is short
try:
return s[:2] + s[4:]
except IndexError:
return s
df['A'] = df.apply(lambda row: stripstring(row['A']), axis=1)
A
0 '325'
1 '453'
2 '12'