首页 > 解决方案 > 如何调整 Python 代码以映射到具有不同拼写但相同值的列名?

问题描述

我在 python 中使用 pandas 模块来下载输入数据集并读取 csv 文件中的每一列。在我的 python 脚本中,我有多个引用指向我的 dataset1 中的特定硬编码列名。我有另一个名为 dataset2 的数据集,它与 dataset1 具有相同类型的数据,但列名不同。例如,dataset1 有一个名为“Apple”的列,dataset2 有一个名为“apples”的列。这两个列都引用了相同的数据值,但是,我的脚本只读取并在整个代码中查找名为“Apple”的列。如何修改我的脚本,以便我可以保留在名为 "Apple" 的所有列中读取的所有代码行,但 make 如此 "Apple" 也可以表示并在任何名为 "apples" 的列中读取 或代表“Apple”类型数据的任何其他列名称。例如,如果我查看一个名为“dataset3”的新数据集,并遇到一个名为“redfruit”的新列,它表示与“Apple”和“apples”相同的数据,我可以在我的代码中添加一个位置/函数,这样我就不必更改我的代码中只有我的初始“Apple”查找硬编码的所有其他行。

这是我在数据集中阅读的方式

import pandas as pd
data= pd.read_csv(input_name))

这是我的代码示例,我在其中查找名为“Apple”的列名,但在查找“Apple”时,我还希望它查找其他列,例如“apples”和“redfruit”并阅读那些唯一的问题是我有多个与此类似的代码块,它们只引用“Apple”,但我不想在所有这些块中硬编码“apples”、“redfruit”和任何其他苹果类型的列名,但也许只是在一个代码区域中进行硬编码,可以在我的代码中引用“Apples”时用作查找。从数据集到数据集,列不在固定位置。

#code block 1
for columns in data.columns:
  if column == 'Apple':
       pass

# code block 2
  data['Apple'] = data['Apple'].apply(str)

我想试试字典,但不知道如何设置它。

标签: pythonpandasdataframemultiple-columns

解决方案


推荐阅读