设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 2580|回复: 5
打印 上一主题 下一主题

读取excel文件,当列名是数字的时候就报错。

[复制链接]

1

主题

1

好友

27

积分

新手上路

Rank: 1

跳转到指定楼层
楼主
发表于 2022-2-13 22:45:30 |只看该作者 |倒序浏览
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文件中把列名称改为非数字就不报错,为什么?
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

沙发
发表于 2022-2-14 00:44:45 |只看该作者
把报错信息发上来看看

y=['2016', '2017'] 这里改成 [2016, 2017]
或者你先输出一下 students 的列名,看一看是什么
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

1

主题

1

好友

27

积分

新手上路

Rank: 1

板凳
发表于 2022-2-14 14:20:23 |只看该作者
crossin先生 发表于 2022-2-14 00:44
把报错信息发上来看看

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

去掉单引号,编译无报错了。 多谢指点,可是为什么呢? 如果是英文列名加引号就没问题的。
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

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

类型不一样
加引号是字符串,不加引号是整数
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

1

主题

1

好友

27

积分

新手上路

Rank: 1

5#
发表于 2022-2-16 22:31:45 |只看该作者
crossin先生 发表于 2022-2-15 15:52
类型不一样
加引号是字符串,不加引号是整数

也就是说当excel的列名是数字的时候,这个数字的类型就不是字符串,而是整数?  可是换成英文标题就是字符串了。这个我还是不能理解。     这一串数字就不能是字符串了吗
回复

使用道具 举报

1

主题

1

好友

27

积分

新手上路

Rank: 1

6#
发表于 2022-2-17 10:55:55 |只看该作者
chen_nst 发表于 2022-2-16 22:31
也就是说当excel的列名是数字的时候,这个数字的类型就不是字符串,而是整数?  可是换成英文标题就是字 ...

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-4-20 09:49 , Processed in 0.018527 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部