如何使用字符串中的位置来更改Pandas Dataframe列中的每个字符串

时间:2018-07-22 16:37:15

标签: python pandas

我正在尝试删除DF列中每个字符串中的第3个和第4个字母。每次都是不同的字母,所以我不知道如何使用正则表达式来完成。 例如,如果我的DF是:

{A                     B           C

'32435'                3           5

'45243'                2           4}

我正在尝试将其转换为:

{A                     B           C

'325'                  3           2

'453'                  2           4}

3 个答案:

答案 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'