我想知道如何使用下面的代码以不同的方式命名将要创建的数据框。
import pandas as pd
import glob
os.chdir("/Users/path")
dataframes=[]
paths = glob.glob("*.csv")
for path in paths:
dataset= pd.read_csv(path)
dataframes.append(dataset)
我想要这样的东西:
df1
df2
df3
....
为了将它们各自用于不同的分析目的。在文件夹中,我有类似的文件
analysis_for_market.csv, dataset_for_analysis.csv, test.csv, ...
假设我有23
csv文件(此长度由数据帧给定,因为它附加了每个df)。对于他们每个人,我想在python中创建一个数据框df以便运行不同的分析。我会为之一:
df=pd.read_csv(path)
(路径位于"/path/analysis_for_market.csv"
)。然后我可以进行处理(添加列,删除列等等)。但是,我也希望能够使用另一个数据集,比如说dataset_for_analysis.csv
,所以我需要创建一个新的数据框df2
。如果我想比较行,这可能很有用。等等。可能每个数据集都需要一个df,所以我需要23 df
。我认为可以使用for循环来完成此操作,但是我不知道如何调用df(例如,df.describe
针对上述两个示例执行)。您能告诉我该怎么做吗?如果您发现与我的问题相关的问题,可以在结束我的问题之前(在解决我的问题之前已关闭上一篇文章)在注释中添加它吗?
感谢您的帮助和理解。
更新:
import os
import pandas as pd
import glob
os.chdir("/Users/path")
paths = glob.glob("*.csv")
dataframes=[]
df={}
for x in range(1,len(paths)):
for path in paths:
df["0".format(x)]=pd.read_csv(path)
#dataframes[path] = df # it gives me the following error: TypeError: list indices must be integers or slices, not str
df["2"]
它仅适用0
于代码中的方法,但是我不知道如何让值介于1
和之间len(paths)
设置数据帧的名称即可完成这项工作。
import pandas as pd
import glob
import os
os.chdir("/Users/path")
df = {}
paths = glob.glob("*.csv")
for index, path in enumerate(paths):
df[str(index)]= pd.read_csv(path)
这对我来说很好。如果我调用df ['0'],则这是第一个数据帧。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句