Python pandas:动态命名加载的 CSV 文件
Posted
技术标签:
【中文标题】Python pandas:动态命名加载的 CSV 文件【英文标题】:Python pandas: dynamically naming loaded CSV files 【发布时间】:2020-10-05 06:26:44 【问题描述】:我正在从同一目录中读取一系列一致命名的 CSV 文件。我正在寻找加载它们,以便变量名称根据文件名更改,即:
food_list=['apples','oranges','pears']
place_list=['bodega','grocery']
for i in range(0, len(food_list)):
for j in range(0,len(place_list)):
grocery=pd.read_csv(str(food_list[i])+'_'+str(place_list[j])+'_train.csv')
new_name=str(food_list[i])+'_'+str(place_list[j])+'_train'
train=new_name
test=pd.read_csv(str(food_list[i])+'_'+str(place_list[j])+'_test.csv')
new_name=str(food_list[i])+'_'+str(place_list[j])+'_test'
test=new_name
### Desired output:
apples_bodega_train # is a dataframe
apples_bodega_test # is a dataframe
...
pears_grocery_train # is a dataframe
pears_grocery_test # is a dataframe
### Actual output:
train # pears_grocery_train
test # pears_grocery_test
因此,我显然只是在每次循环迭代中用其他无用的变量名称覆盖加载的 CSV 数据帧名称“train”和“test”,而不是仅仅重命名加载的数据帧。有人能告诉我解决这个问题的明智方法吗?
【问题讨论】:
【参考方案1】:使用 eval() 函数实际上可以做到这一点,但这绝对不是您想要做的。如何将数据框保存在字典中?像这样:
dataframes = dict()
dataframes[str(food_list[i])+'_'+str(place_list[j])+'_train'] = pd.read_csv(str(food_list[i])+'_'+str(place_list[j])+'_train.csv')
dataframes[str(food_list[i])+'_'+str(place_list[j])+'_test'] = pd.read_csv(str(food_list[i])+'_'+str(place_list[j])+'_test.csv')
【讨论】:
太好了——这让我可以使用以下语法访问每个数据帧:dataframes['apple_bodega_train'] 等等。谢谢!以上是关于Python pandas:动态命名加载的 CSV 文件的主要内容,如果未能解决你的问题,请参考以下文章