我想一天一天地度过整个四月。我想打印一个数据框,该数据框每天都合并到我所在的那一天,另一个 df 仅包含最近 3 天。例如,假设今天是 2021 年 4 月 5 日。我想打印一个将 apr1、apr2、apr3 和 apr4 组合在一起的数据帧。我还想打印最近 3 天(apr2、apr3、apr4)。我该怎么做呢?
import pandas as pd
z={
0 :pd.read_csv('21_apr1.csv'),
1 :pd.read_csv('21_apr2.csv'),
2 :pd.read_csv('21_apr3.csv'),
3 :pd.read_csv('21_apr4.csv'),
4 :pd.read_csv('21_apr5.csv'),
}
for w in range(5):
try:
df1=pd.concat([z[w],z[w-1],z[w-2],z[w-3],z[w-4]])
except KeyError:
continue
for w in range(5):
try:
df2=pd.concat([z[w-3],z[w-2],z[w-1]])
except KeyError:
continue
print(df1.head(3))
print(df2.head(3))
回答1
import pandas as pd
z = [pd.read_csv(f'21_apr{x}.csv') for x in range(1, 6)]
df1 = pd.concat([z[0:-1])
df2 = pd.concat([z[1:-1])
回答2
我能够使用 BeRT2me 写的东西来解决。
today=int(input('Which day of 2021? Day: '))
for n in range(1,today+1):
if n>3:
z = [pd.read_csv(f'21_day{w}.csv')for w in range(1,n)]
temp1=pd.read_csv(f'21_day{n-3}.csv')
temp2=pd.read_csv(f'21_day{n-2}.csv')
temp3=pd.read_csv(f'21_day{n-1}.csv')
last3days=pd.concat([temp1,temp2,temp3])
all_past = pd.concat(z[:])
nextday = pd.read_csv(f'21_day{n+1}.csv')
#run my code in the for loop