我正在清理已加载到dataframe的非结构化数据(从.xlsx文件加载),它们没有列标签,而是有列索引。通过从每个列阅读值,我需要到达行,这些值将用于设置列标签。
打印(df)
0 1 2 3 4 5
o NaN NaN NaN NaN NaN NaN
1 NaN NaN % NaN NaN NaN
2 Usr Id Add ph dept Sec
3 Tom 12 Addr 123 IT F.E
我的解决方案是下面确定行的索引
for col in df.columns :
header_idx = df[df[col].eq('Usr')].index.values[0]
一旦确定了索引,我将再次从header_idx读取并加载excel源文件到dataframe。这个解决方案工作得很好,但我还有一个用例,我需要检查字符串列表来识别索引。例如,对于第一列,我需要检查[“Usr”,“User”,“Usrnm”]等。有人能提供方向吗?
1条答案
按热度按时间dgenwo3n1#
更通用的解决方案可能是:
如果您认为标题没有空值,并且在它之前,每行至少有一个空单元格,您可以使用
dropna
删除这些行。您还可以使用thresh
参数以提高安全性。输出: