我创建了一个脚本来使用熊猫浏览所需的数据。 现在,我收到了更多需要查看的文件,可惜这些文件没有相同的标题。
例如,我已经在列列表中使用了“ id_num”,在某些文件中它显示为“ num_id”。
是否仍然可以使用我创建的usecols列表,并允许其中的某些元素与不同的标头字符串“连接”,例如使用正则表达式?
答案 0 :(得分:1)
我假设您是指usecols
中的pd.read_csv
关键字(或一些类似的熊猫读物)?我敢肯定,您已经收集到大熊猫无法在数据框之前进行正则表达式搜索,因此它甚至可以读取数据框,因此,我敢肯定,使用usecols
进行正则表达式搜索关键字不可行。
但是,在将csv读入数据帧后(为方便起见,我们将其命名为df
),您可以非常容易地使用正则表达式过滤感兴趣的列。
例如,假设您的新数据帧已加载到df
:
potential_columns = ['num_id', 'id_num']
df_cols = [col for col in df.columns if re.search('|'.join(potential_columns), col)]
您可以列出要使用potential_columns
搜索的所有潜在列。然后使用join
创建一个大型正则表达式搜索。然后使用列表推导来聚合df.columns
中的所有有效列。完成后,您可以通过以下方式完成此过程:
df = df[df_cols]
处理重复的列,创建聪明的关键字进行搜索,留给您作为练习。