在一个文件中存储列名的最佳方法是什么(以及什么类型的文件?)以及数据框是否包含文件中的某些列而不是选择它(其他列将被删除)。 例如:
some_file_with_columns:
column_names = [col1, col3, col5, cola, colb, col6, colm]
Dataframes:
df1.columns= [col1, col2, col3, col4, col5, col6, col7]
df2.columns= [cola, colb, colc, cold, colm, colp]
处理后的所需输出:
df1.columns= [col1, col3, col5, col6, ]
df2.columns= [cola, colb, colm]
也许yaml文件? 我问这个是因为我有9个需要起诉的数据框,它们总共有近300列。如果我可以从脚本中删除列名并将它们存储在一些单独的文件中,我会很高兴。
答案 0 :(得分:1)
您可以使用difference
df=df[:,df.columns.difference(column_names)]
答案 1 :(得分:1)
您有许多选项。选择对您的用例最有意义的内容。
这些选项假设您有一个包含列名的列表lst
。
df_cols = pd.DataFrame({'col': lst})
# csv - text file which is widely read
df_cols.to_csv('file.csv')
# pickle - serialized data, readable by identical version pandas
df_cols.to_pickle('file.pkl')
# excel - readable via MS Excel
df_cols.to_excel('file.xlsx')
然后只需使用pandas
读取文件并转换为列表。