Python pandas:动态命名加载的CSV文件

问题描述 投票:0回答:1

我正在从同一目录中读取一系列一致命名的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”,而不是重新命名已加载的数据框。有人可以启发我解决此问题的聪明方法吗?

python pandas csv for-loop file-rename
1个回答
0
投票

这实际上可以通过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')
© www.soinside.com 2019 - 2024. All rights reserved.