python - 读取 zip 文件列表并从 Pandas 中的文件名中提取年份
问题描述
我正在尝试读取 Pandas 中的 zip 文件列表并将它们组合到一个数据框中。如何将文件名中的年份(例如 2014 年)提取到数据框中名为“YEAR”的新列中?谢谢!
files = ['CollegeScorecard_Data/MERGED2013_14_PP.zip',
'CollegeScorecard_Data/MERGED2014_15_PP.zip',
'CollegeScorecard_Data/MERGED2017_18_PP.zip',
'CollegeScorecard_Data/MERGED2009_10_PP.zip',
'CollegeScorecard_Data/MERGED2016_17_PP.zip',
'CollegeScorecard_Data/MERGED2011_12_PP.zip',
'CollegeScorecard_Data/MERGED2015_16_PP.zip',
'CollegeScorecard_Data/MERGED2010_11_PP.zip',
'CollegeScorecard_Data/MERGED2012_13_PP.zip']
frames = []
for file in files:
df = pd.read_csv(file,compression='zip', low_memory=False)
frames.append(df)
pd.concat(frames)
解决方案
尝试连接():
frames = []
for file in files:
df = pd.read_csv(file,compression='zip')
# there several ways to get the year; here's one
df['YEAR'] = file.split('MERGED')[1].split('_')[0]
frames.append(df)
pd.concat(frames)