我有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
请问任何帮助吗?
答案 0 :(得分:1)
我认为您可以先创建Dataframes
dfs
的列表,然后将concat
列为df
。 count
没有必要。列year
的最后一次IIUC sort_values
:
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)
答案 1 :(得分:0)
我认为您需要初始化词典:
df = {}
for i in range(0,40):
df[count] = pd.read_excel('42003h'+str(year)+'.xlsx', sheet_name = 'Sheet1')
答案 2 :(得分:0)
我会这样做:
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)