1 smallzhan 2018-07-05 23:54:40 +08:00 看看 pandas 的 read_xlsx 函数 |
2 smallzhan 2018-07-05 23:55:18 +08:00 ![]() 额,说错,是 read_excel 函数 |
![]() | 3 changnet 2018-07-06 01:24:19 +08:00 via Android 好像不行。openpyxl 只是改进对高版本 excel 的支持,功能接口差不多。 如果文档没法固定列这一列,或者这一列的范围,excel 本身就没有多少列,循环查找不就可以了么。 我用得也不多,仅个人意见。 |
![]() | 4 LuckCode 2018-07-06 09:23:03 +08:00 via iPhone 读出 header,获取指定列名的 index,然后按下标读? |
5 pharaoh21c OP @LuckCode 谢谢哈!弱弱的问一下,怎么读出 header 呀?我网上搜了半天,没看到代码。。。 |
6 pharaoh21c OP |
![]() | 7 shuax 2018-07-06 10:52:07 +08:00 列名怎么改? |
8 pharaoh21c OP @shuax 我是原来表格里就有列名。。。所以想直接读取 |
![]() | 9 wangdaqiao 2018-07-06 13:54:40 +08:00 先读出列名所在行(一般是第一行)到一个 list 中,然后就能根据列名找到其在哪一列,后面就很清楚了。 |
10 saulshao 2018-07-06 14:18:39 +08:00 直接就把所有的列名都读出来,然后循环一下就知道你想要的列是在第几列了。 |
11 smallzhan 2018-07-06 20:33:16 +08:00 @pharaoh21c pandas 库啊,没去试一下么,read_excel 读进去数据后,表格里面的第一行,也就是你的标题,自动变成了下,例如简单的 data = pandas.read_excel("xxx.xlsx") 那么可以用 data['NTCC1'] 直接访问这一列。 |
12 pharaoh21c OP @smallzhan @saulshao @wangdaqiao 谢谢!其实我说的列明并非第一行的列标题,而是直接将列(如 A 列)改成了另外一个名字如‘ NTCC1 ’(就是你选中了整列以后在左上角有个空格里直接输入‘ NTCC1 ’),A1 单元格是列的中文名称。现在是想读到这个‘ NTCC1 ’列名称,并非在 A1 单元格里的这个列名称。当初用 VBA 写函数的时候这样做比较方便,现在改成 python 了就不知道怎么弄了。现在我改用 openpyxl 了,pandas 等要过会儿再学习了。。。 |
![]() | 13 LuckCode 2018-07-06 23:24:07 +08:00 @pharaoh21c 我和 #9 的想法是一样的,从回复看来是我想错了。。。 |
14 pharaoh21c OP @LuckCode 嗯,内嵌的 VBA 还是有它的优势的,研究中。。。 |
15 Arnie97 2018-07-08 11:41:22 +08:00 via Android 原来这个列名本身还能改啊, |
16 pharaoh21c OP @Arnie97 是的,改了列名本身的话,使用 VBA 可以直接读取,而不需要再通过循环查找首行列名称来找了,我感觉应该可以节约程序运算时间。。。 |
17 matrix273 2018-07-29 02:26:50 +08:00 via Android list.index('NTCC1')了解一下,将对应行转换为列表,然后再 sheet.col_values(list.index('NTCC1')) |