【问题标题】:Pandas ignoring cells with " and ,熊猫忽略带有 \" 和 ,
【发布时间】:2022-12-07 13:44:28
【问题描述】:

我有一个以分号分隔的 pandas DataFrame,其中包含所有 dtypes 的对象。在某些单元格中,字符串值可以包含 "、逗号 (,) 或两者兼有(例如 TES"T_ING,_VALUE)。然后,我根据某些条件使用 df.query 查询 DF 以获取 DataFrame 的子集,但是具有示例中描述的模式的行被完全省略,但其余行返回得很好。另一个要求是我还需要将文本中的所有 " 与结束引号匹配,但应用 lambda 将 " 替换为 "" 也没有正确完成。我尝试了几种方法,它们列在下面

问题一:

pd.read_csv("file.csv", delimiter=';')
pd.read_csv("file.csv", delmiter=';', thousands=',')
pd.read_csv("file.csv", delimiter=";", escapechar='"')
pd.read_csv("file.csv", delimiter=";", encoding='utf-8')

以上所有都无法加载有问题的数据。

问题二: 输入:TES"T_ING,_VALUE 到 TES""T_ING,_VALUE 我努力了:

df.apply(lambda s: s.str.replace('"', '""') 

什么都不做。

究竟是怎么回事?我无法在任何地方找到解决此类特定问题的任何问题。

提前感谢您的帮助。

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    听起来您在尝试将数据加载到 Pandas DataFrame 以及随后尝试对数据应用转换时遇到了一些问题。您可以尝试一些方法来解决这些问题。

    首先,当使用 pd.read_csv() 函数读取数据时,您可以指定 quotechar 参数来告诉 Pandas 哪个字符用于包含数据中的字符串。例如,如果您的数据使用双引号(")将字符串括起来,您可以使用以下方式读入数据:

    pd.read_csv("file.csv", delimiter=";", quotechar='"')
    

    您还可以指定引用参数来控制引号的处理方式。例如,设置 quoting=csv.QUOTE_ALL 将告诉 Pandas 期望输入中所有字段周围的引号。

    其次,如果你想在 DataFrame 的单元格中用 "" 替换 " 字符,你可以在 DataFrame 的每一列上使用 str.replace() 方法,如下所示:

    df = df.apply(lambda col: col.str.replace('"', '""'))
    

    这将在 DataFrame 的每一列中用 "" 替换 " 字符的所有实例。

    我希望这有帮助!如果您有任何其他问题,请告诉我。

    【讨论】:

      猜你喜欢
      • 2016-08-27
      • 2019-08-30
      • 1970-01-01
      • 2018-12-15
      • 2020-10-01
      • 1970-01-01
      • 2019-04-15
      • 2017-06-10
      • 1970-01-01
      相关资源
      最近更新 更多