删除DataFrame中字符串中的第二个字符

时间:2015-10-25 14:32:42

标签: python string pandas dataframe

我有一个DataFrame,其中包含一个包含中间首字母的名称列。我需要删除中间的首字母,这是字符串中的第二个字符。

df = pd.DataFrame({'alpha': ['1', '2', '3'],
                   'beta': ['JRLeparoux', 'BJHernandez,Jr.','SXBridgmohan'],})

以下是我的尝试:

def fixbadname(word):
    filelist2= [] 
    filelist = []
    for elem in word:
        filelist.append(elem)
         for file in filelist:
            file = file.replace(file[1],"") 
            filelist2.append(file)

    return filelist2

df['beta'].apply(fixbadname)

这是所需的输出:

df = pd.DataFrame({'alpha': ['1', '2', '3'],
                   'beta': ['JLeparoux', 'BHernandez,Jr.','SBridgmohan'],})

2 个答案:

答案 0 :(得分:4)

您可以使用矢量化字符串方法以多种不同方式执行此操作。

一种方法是使用slice_replace

>>> df['beta'] = df['beta'].str.slice_replace(1, 2)
>>> df
  alpha            beta
0     1       JLeparoux
1     2  BHernandez,Jr.
2     3     SBridgmohan

此方法选择字符串的切片(此处为切片[1:2])并将其替换为替换字符串。如果没有给出替换字符串作为第三个参数,则将使用空字符串''

答案 1 :(得分:3)

df.beta = df.beta.str[0:1] + df.beta.str[2:];
这应该工作。
如果你想要一些解释;问我。