pandas可以根据值隐式确定标题,而不是行吗?

时间:2016-09-12 16:27:17

标签: excel python-3.x pandas xlrd

我与使用Excel的人一起工作,不断添加或减去我不知道的行。我必须为数据刮取文档,并且找到标题的行会根据情绪发生变化。

我的挑战是通过检测标题的位置来处理这些振荡电流。

我首先使用Uncaught TypeError: Cannot read property 'then' of undefined和使用工作簿中的值的一些条件语句组织我的scrape。

我最初的尝试有效并且很长(因此我不会发布它)但涉及引入整个工作表,而不是切片:

import superagent from 'superagent';
import superagentPromisePlugin from 'superagent-promise-plugin';
import {RequestMethods} from '../constant';

const request = ({url, method = RequestMethods.GET, param, body, header}) => {
  let methodStr;
  switch (method) {
    case RequestMethods.POST:
      methodStr = 'POST';
      break;
    case RequestMethods.PUT:
      methodStr = 'PUT';
      break;
    case RequestMethods.DELETE:
      methodStr = 'DELETE';
      break;
    default:
      methodStr = 'GET';
      break;
  }
  let req = superagent(methodStr, url).use(superagentPromisePlugin);
  //set header
  if (header) {
    req.set(header)
  }
  //set param
  if (param) {
    req.query(param)
  }
  //set body
  if (body) {
    req.send(body)
  }
  return req;
};

export default request;

然而,它很大,我宁愿选择更有针对性的选择。标题值永远不会更改,也不会在此行之后显示数据。

您是否知道使用xlrdfrom xlrd import open_workbook book = open_workbook(fName) sheet = book.sheet_by_name(sht) return book,sheet 根据表单中的找到值隐式获取标题的方法?

以下是pandas.ExcelFile的尝试:

pandas.read_excel

我无法让代码工作,除非我给调用正确的标头值,这正是我希望避免的。

这个previous question似乎提出了类似的问题,但没有解决隐含查找标题的问题。

1 个答案:

答案 0 :(得分:0)

通过ExcelFile对象执行相同的循环:

xlsx = pd.ExcelFile(fName)
sheet = xlsx.sheet_by_name(sht)
# apply the same algorithm you wrote against xlrd here
# ... results in having header_row = something, 0 based
dataFrame = pd.read_excel(xlsx, sht,
                      parse_cols=21, merge_cells=noMerge, 
                      skip_rows=header_row)