将多个Excel文件导入熊猫并根据文件名创建一个列

时间:2018-09-09 04:08:33

标签: python pandas

我在一个文件夹中有多个excel文件,我想一起阅读和合并,但是在总结时,我想根据文件名添加列

SELECT DISTINCT
  DocID,
  Dx,
  DxDate,
  CreateDate,
  rownum1,
  rank1
FROM (SELECT
  DocID,
  Dx,
  DxDate,
  CreateDate,
  RANK() OVER (PARTITION BY DocID ORDER BY DxDate DESC) AS rank1,
  ROW_NUMBER() OVER (PARTITION BY DocID ORDER BY DxDate DESC) AS rownum1
FROM DxList) b
WHERE rownum1 = 1

我可以使用以下脚本在熊猫中读取这些文件

'D:\\156667_Report.xls',
'D:\\192059_Report.xls',
'D:\\254787_Report.xls',
'D:\\263421_Report.xls',
'D:\\273554_Report.xls',
'D:\\280163_Report.xls',
'D:\\307928_Report.xls'

我想在我读取的所有文件中将列添加为path =r'D:\' # use your path allFiles = glob.glob(path + "/*.xls") frame = pd.DataFrame() list_ = [] for file_ in allFiles: df = pd.read_excel(file_,index_col=None, header=0) list_.append(df) frame = pd.concat(list_) 。代码将是文件名中的数字,例如Code

1 个答案:

答案 0 :(得分:1)

为什么不匹配

foo = re.match('\.*_Report', file_)
num = foo[:6]`
df['Code']= num

在循环中吗?