Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将数据分配给单独的数据框,按年份进行组合和排序_Python_Sorting_Pandas_Dataframe_Concat - Fatal编程技术网

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,应该按索引排序