遍历文件并执行相同的操作


Example df
0   date          fruit
1   2010-01-01     apple
2   2010-01-01     pears

如何循环遍历数据帧,然后对每个数据帧执行相同的操作?我对缩进和Python解释循环的顺序感到困惑。想要通用代码

lista = []
for x in [2010, 2017, 2020]:
if x> 2015:
for file in glob.glob(f'My DocumentsAnalysis{x}LateAnalysis\*.csv'):
df = pd.read_csv(file)
else:
for file in glob.glob(f'My DocumentsAnalysis{x}Early_Analysis\*.csv'):
df = pd.read_csv(file)
#perform the same operations to each dataframe. Unsure about indendation of the below
df = df.set_index('date')
lista.append(df)
...

使用df的所有内容都需要在for循环内。否则,您只能获得每年的最后一个数据帧。

您还可以通过使用一个变量来表示它们之间的一个差异,从而将for循环组合为单个循环。

lista = []
for x in [2010, 2017, 2020]:
if x > 2015:
filenames = rf'My DocumentsAnalysis{x}LateAnalysis*.csv'
else:
filenames = rf'My DocumentsAnalysis{x}Early_Analysis*.csv'
for file in glob.glob(filenames):
df = pd.read_csv(file)
df = df.set_index('date')
lista.append(df)

最新更新