Crossin的编程教室

标题: 读取excel文件,当列名是数字的时候就报错。 [打印本页]

作者: chen_nst    时间: 2022-2-13 22:45
标题: 读取excel文件,当列名是数字的时候就报错。
import pandas as pd
import matplotlib.pyplot as plt

students = pd.read_excel('C:/Temp/Field1.xlsx')
print(students)
students.sort_values(by='2016', inplace=True, ascending=False)

students.plot.bar(x='Field', y=['2016', '2017'])
# plt.bar(students.Field, students.2016)
plt.show()
Excel中有两列的列名称是2016和2017
sort_values和plot.bar都报错,在excel文件中把列名称改为非数字就不报错,为什么?

作者: crossin先生    时间: 2022-2-14 00:44
把报错信息发上来看看

y=['2016', '2017'] 这里改成 [2016, 2017]
或者你先输出一下 students 的列名,看一看是什么
作者: chen_nst    时间: 2022-2-14 14:20
crossin先生 发表于 2022-2-14 00:44
把报错信息发上来看看

y=['2016', '2017'] 这里改成 [2016, 2017]

去掉单引号,编译无报错了。 多谢指点,可是为什么呢? 如果是英文列名加引号就没问题的。
作者: crossin先生    时间: 2022-2-15 15:52
chen_nst 发表于 2022-2-14 14:20
去掉单引号,编译无报错了。 多谢指点,可是为什么呢? 如果是英文列名加引号就没问题的。  ...

类型不一样
加引号是字符串,不加引号是整数
作者: chen_nst    时间: 2022-2-16 22:31
crossin先生 发表于 2022-2-15 15:52
类型不一样
加引号是字符串,不加引号是整数

也就是说当excel的列名是数字的时候,这个数字的类型就不是字符串,而是整数?  可是换成英文标题就是字符串了。这个我还是不能理解。     这一串数字就不能是字符串了吗
作者: chen_nst    时间: 2022-2-17 10:55
chen_nst 发表于 2022-2-16 22:31
也就是说当excel的列名是数字的时候,这个数字的类型就不是字符串,而是整数?  可是换成英文标题就是字 ...

感谢管理员指点,我昨天看了一个学习视频,当列名为数字是前面加' 就识别为字符串,没有' 就按整数识别。  语法默认这样。




欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5