【问题标题】:Can I pass a regex to pandas index_col我可以将正则表达式传递给熊猫 index_col
【发布时间】:2021-06-17 04:27:31
【问题描述】:

我有多种数据文件要加载,但列名不一致。

理想情况下我会传递给pd.read_csv(file, index_col = 'patient_id')

但在数据中,我找到了 id 的列名称,例如 'patien_id','pat_id' 等。

所以我认为通过某种正则表达式会很好。有什么想法吗?

最好的

【问题讨论】:

  • 正如here 解释的那样,您不能使用正则表达式查询数据框列。
  • @CarloZanocco 列名只是一个字符串?
  • 是的,列 name 只是一个字符串。 DataFrame 列是一个 Series 对象。

标签: python pandas


【解决方案1】:

您可以尝试使用正则表达式过滤 Pandas 数据框中的列:

df = pd.read_csv(file)              # read entire CSV into dataframe
df = df.filter(regex=("pat.*_id"))  # subset dataframe to only the columns you want

【讨论】:

  • 所以这将被传递给 index_col?这意味着重新加载?
  • @MarioL 我建议先从 CSV 文件加载整个数据框,然后只保留您感兴趣的列。
  • 我明白了,这是一个解决方案。不过,我希望可以在 pd.read_csv() 中加载时做到这一点
  • 大多数语言(包括 Pandas、SQL 和 R 等)的 CSV 加载工具都以这种方式运行;您倾向于将整个 CSV 加载到 Pandas 中,然后弄清楚如何处理它。
猜你喜欢
  • 1970-01-01
  • 2015-11-18
  • 1970-01-01
  • 2014-01-10
  • 1970-01-01
  • 2018-04-30
  • 2014-08-30
  • 2013-04-19
相关资源
最近更新 更多