当前位置: 代码迷 >> python >> 删除DataFrame中字符串中的第二个字符
  详细解决方案

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

热度:23   发布时间:2023-06-16 13:57:21.0

我有一个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'],})

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

一种方法是使用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] )并用替换字符串替换它。 如果没有给出替换字符串作为第三个参数,则将使用空字符串''

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

  相关解决方案