我有一个充满txt文件的文件夹,我想将每个文件作为自己的df导入。我想调用每个df与txt文件相同的名称。
这是我必须在所有文件中阅读的内容:
def bMono = Mono.just(new B())
when:
def serviceResponse = aService.toTestMethod(a, bMono)
then:
1 * service.method(_ as Service,_ as B)
而不是每个df被称为import pandas as pd
import glob
path =r'D:\Path\to\ files'
allFiles = glob.glob(path + "/*.txt")
for file_ in allFiles:
df = pd.read_csv(file_,index_col=None, header=0)
我希望它是df
文件名。
答案 0 :(得分:1)
一种选择是创建一个字典并像普通数组一样访问每个字典。
for f in files:
dfs.append(pd.read_csv(f, index_col=None, header=0))
# use dfs[0]
或者,如果您知道每个文件名都是唯一的,请创建一个字典映射文件名到dataframes
dfs = {}
for f in files:
dfs[f] = pd.read_csv(f, index_col=None, header=0))
# do stuff to dfs['filename']
然而,最pythonic的方式是词典理解
dfs = { f: pd.read_csv(f, index_col=None, header=0) for f in all_files }
注意,我认为我将变量名称更改为更加pythonic的约定。所以要么记得将我的变量名改回你的名字,要么遵守!
答案 1 :(得分:0)
您可以使用exec
获得所需内容,如第一个答案Using a string variable as a variable name中所述,但这不是一个好的解决方案,我建议使用字典
import pandas as pd
import glob
path =r'D:\Path\to\ files'
allFiles = glob.glob(path + "/*.txt")
df_dict = {}
for file_ in allFiles:
df_dict[_file] = pd.read_csv(file_,index_col=None, header=0)