删除字符串中的所有双引号,然后向其添加双引号

2024-10-03 15:22:39 发布

您现在位置:Python中文网/ 问答频道 /正文

今天我一直在努力解决这个问题,希望有人能帮助我。 我有以下代码:

import pandas as pd 
import re


com = "\""
a = str(com)


df = pd.read_csv("xd.csv", sep = ',')

for column in df.columns:
    if df[column].dtype == object:
        df[column] = df[column].apply(str)
        for x in range(len(df)):
            re.sub('[\",\']','', df.loc[x,column])
            df.loc[x,column] =  a + df.loc[x,column] + a

我假装从数据帧的字符串中删除所有双引号,然后再次添加双引号。 这主要是因为我有一些字符串如下:

“ALICATE Cte Obl 6”1000V-汉密尔顿

我希望他们是这样的:

“ALICATE Cte Obl 6 1000V-汉密尔顿”

换句话说,我想删除中间的双引号。但问题是我的代码返回它们的方式如下:

“ALICATE Cte Obl 6 1000V-汉密尔顿”

正确的答案是这样的:

“SIM卡电视租赁P6”

现在是这样的:

“”“SIM卡电视租赁P6”“”


@uttam 我试过了,它不断地给我返回三个双路径。这是代码

import pandas as pd 
import re

df = pd.read_csv("xd.csv", sep = ',')


for i in range(len(df)):
    df["ITEM_DESCRIPTION"][i].replace('[\"\,\.]','')
    df["ITEM_DESCRIPTION"][i] = '"' + df["ITEM_DESCRIPTION"][i] + '"'

df.to_csv("xd.csv", index=False)

之前:“MARTILLO C/FIBRA BOL.350GR-汉密尔顿”

之后:“MARTILLO C/FIBRA BOL.350GR-汉密尔顿”


Tags: csv代码inimportredfforcolumn
2条回答

可以使用str.replace("what to replace","with what to replace")替换字符

示例:-假设我有一列价格,其中填充了美元。还有,符号,但我想删除它们,然后我可以使用price_column=df["Price"].str.replace('[\$\,\.]','')

替换后,请尝试使用连接属性

示例:-" + df["Price"][0] + ")

一次对所有行进行替换,而不是在行中进行更慢的迭代过程。此外,您还需要.str.replace而不仅仅是.replace,因为.replace只有在找到与整个数据帧单元格匹配的数据时才会被替换。下面是一个玩具示例:

df = pd.DataFrame({'ITEM_DESCRIPTION':  ['"ALICATE Cte Obl 6" 1000V - HAMILTON"',
                   '"SIM CARD TV LEASE P6"', '"more,." stuff"']})

df["ITEM_DESCRIPTION"] = df["ITEM_DESCRIPTION"].str.replace('[\",\.]', '')
df["ITEM_DESCRIPTION"] = '"' + df["ITEM_DESCRIPTION"] + '"'

print(df)
#                        ITEM_DESCRIPTION
# 0  "ALICATE Cte Obl 6 1000V - HAMILTON"
# 1                "SIM CARD TV LEASE P6"
# 2                          "more stuff"

相关问题 更多 >