Python 将数据分配给单独的数据框,按年份进行组合和排序
我有Python 将数据分配给单独的数据框,按年份进行组合和排序,python,sorting,pandas,dataframe,concat,Python,Sorting,Pandas,Dataframe,Concat,我有40年的数据,所以我试图将它们分别分配给一个数据帧,然后将它们全部存储在一个新的数据帧中,然后对它们进行排序。以下是我目前的情况: import pandas as pd from pandas import DataFrame year = 1976 count = 1 for i in range(0,40): df[count] = pd.read_excel('42003h'+str(year)+'.xlsx', sheet_name = 'Sheet1')
40年的数据,所以我试图将它们分别分配给一个数据帧,然后将它们全部存储在一个新的数据帧中,然后对它们进行排序。以下是我目前的情况:
import pandas as pd
from pandas import DataFrame
year = 1976
count = 1
for i in range(0,40):
df[count] = pd.read_excel('42003h'+str(year)+'.xlsx', sheet_name = 'Sheet1')
count = count + 1
year = 1976 + 1
我犯了这个错误
通过的项目数量错误12,放置意味着1
希望您能提供帮助?我想您需要初始化词典:
df = {}
for i in range(0,40):
df[count] = pd.read_excel('42003h'+str(year)+'.xlsx', sheet_name = 'Sheet1')
我认为您可以首先创建数据帧的列表
dfs
,然后将其添加到一个df
<代码>计数
不是必需的。上一次IIUC(按列)年份
:
import pandas as pd
year = 1976
dfs = []
for i in range(0,40):
dfs.append(pd.read_excel('42003h'+str(year)+'.xlsx', sheet_name = 'Sheet1'))
year += 1
#if need concat by columns
#df = pd.concat(dfs, axis=1)
#if need concat by rows
df = pd.concat(dfs)
#if need sort by column `year`
df.sort_values(by='year', inplace=True)
我会这样做:
import glob
import pandas as pd
files = glob.glob('42003h*.xlsx')
# if you want to merge your DFs horizontally then add: `axis=1` parameter
df = pd.concat([pd.read_excel(f) for f in files], ignore_index=True).sort_values('year')
count = len(files)
文件似乎为空,但不应为空,因为文件位于当前文件夹中directory@renardo,试试这个:
files=glob.glob('42003h*.xlsx')
这似乎只给了我1977年的时间,实际上从1976年开始一直到2015年,然后在末尾,日期不再出现了,它显示的数字像1609-1613,应该按索引排序