首页 > 解决方案 > 如果字符串以开头,Python Pandas 替换子字符串

问题描述

我正在尝试编写以下函数:

def d (row):
    if df['name'].str.startswith('"'):
        return df['name'].str.replace("'","''")
    else:
        return df['name']
df['name2'] = df.apply(lambda row: d(row), axis=1)

每当字符串在收缩中具有单个撇号时,我都会尝试添加第二个撇号。这仅在我有双引号字符串时出现。

我继续得到一个' KeyError:('name',发生在索引 0')

这在我的数据集中只发生了几次,但我需要将“jack's place”替换为“jack's place”,以便我可以将其注入到 sql 查询中。

标签: pythonstringpandasfunctionreplace

解决方案


为什么不能完全替换:

df['name2'] = df['name'].str.replace('\'', '"')
print(df)

           name         name2
0           ABC           ABC
1           SDF           SDF
2  jack's place  jack"s place
3  jack's place  jack"s place
4  jack's place  jack"s place

推荐阅读