【问题标题】:Remove illegal file name characters from pandas dataframe column using python使用python从pandas数据框列中删除非法文件名字符
【发布时间】:2020-09-25 07:08:46
【问题描述】:

我有一个 pandas 数据框,其中有一个名为 filenames 的列,其中包含将用于将某些对象保存到 csv 文件中的名称。但是,其中许多包含非法字符,例如“?”或者“/”,有没有快速删除所有的方法?

我尝试了dataframe['filenames'] = dataframe['filenames'].str.strip('?/') ,但没有任何反应。人物还在,有什么更高效、更安全的方法?

【问题讨论】:

  • ? 在 Unix 上的文件名在技术上并不违法。 (在 Windows 上,我猜这取决于 Windows 的版本、月相和 MSFT 股票的走势。)

标签: python regex pandas dataframe strip


【解决方案1】:

我会这样做的。您可以添加任意数量的字符。

dataframe['filenames'] = dataframe['filenames'].str.replace('?|/', '', regex=True)

您需要用“|”分隔要删除的字符。

【讨论】:

  • 进一步解释为什么 strip() 不起作用。 Strip() 只检测字符串的开始和结束。因此,字符串中间出现的任何不需要的字符都不会被删除。但是,使用 replace(),您可以替换字符串中的任何字符,而不管字符的位置。
  • .str.replace('|:|"|/|\|||?|*', '', regex=True) 像这样?
  • 是的!你是对的。事实上它是 REGEX 的同步税。你可以在regex101.com上试试看是否正确
猜你喜欢
  • 1970-01-01
  • 2016-07-20
  • 1970-01-01
  • 1970-01-01
  • 2012-04-13
  • 2018-11-16
  • 2018-07-30
  • 1970-01-01
相关资源
最近更新 更多