为了提供一些背景知识,我创建了excel表,将excel列索引转换为pandas索引。从本质上讲,这只是一个简单的Vlookup,位于已定义的表上,例如列A = 0,列B = 1。它可以完成工作,但是效率不如我希望的那样。
我在函数上使用这些索引来重命名那些字段,以遵循我们当前的命名法。例如
df = df.rename(columns={df.columns[5]: "Original Claim Type",
df.columns [1]:"Date of Loss",
df.columns[3]:"Date Reported (tpa)",
df.columns[2]:"Employer Report Date",
df.columns[4]:"Original Status",
df.columns[6]:"Date Closed",
df.columns[27]:"(net)Total Paid",
df.columns[23]:"(net) Total Incurred",
df.columns[25]:"NET Paid(Med)",
df.columns[26]:"NET Paid(Exp)",
df.columns[24]:"NET Paid (Ind)",
df.columns[18]:"Original Litigation",
df.columns[7]:"Date of Hire",
df.columns[8]:"Date of Birth",
df.columns[9]:"Benefit State",
df.columns[15]:"Original Cause",
df.columns[17]:"Body Part",
df.columns[32]:"TTD Days"})
我的新解决方案是创建一个Dictionairy,以映射值及其对应的索引。
excel_index={'A':0,'B':1,'C':2}
test={"Claim Number":[0,1,2,3,4,5]}
test=pd.DataFrame(test)
test=test.rename(columns={ test.columns[excel_index['A']]: "Frog"})
它有效,但是我唯一的问题是我必须事先手动输入所有索引值。
有什么更有效的方法来执行此操作?
-布兰登
最佳答案
如果您有一列索引名称(例如示例中的on),则可以在pd.read_excel命令中进行指定。由于您的索引列为5,因此它将显示为:
df = pd.read_excel('yourfilename.xlsx', index_col=5)