Python pandas: 动态命名加载的 CSV 文件
Python pandas: dynamically naming loaded CSV files
我正在阅读来自同一目录的一系列命名一致的 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",而不是 重命名加载的数据帧。有人能告诉我解决这个问题的明智方法吗?
这实际上可以通过 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')
我正在阅读来自同一目录的一系列命名一致的 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",而不是 重命名加载的数据帧。有人能告诉我解决这个问题的明智方法吗?
这实际上可以通过 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')