panda对于EXCEL单元赋值如何能够设置string?
【摘要】
➤01 PANDAS
1.问题现象
在使用pandas对EXCEL文件进行操作时,经常会碰到如下如下的出错信息:
Traceback (most recent call la...
➤01 PANDAS
1.问题现象
在使用pandas对EXCEL文件进行操作时,经常会碰到如下如下的出错信息:
Traceback (most recent call last):
File "d:\temp\TEMP0002\test.PY", line 16, in <module>
ef.at[0, 'HW3'] = 'Hello'
File "C:\Users\zhuoqing\Anaconda3\lib\site-packages\pandas\core\indexing.py", line 2287, in __setitem__
self.obj._set_value(*key, takeable=self._takeable)
File "C:\Users\zhuoqing\Anaconda3\lib\site-packages\pandas\core\frame.py", line 2815, in _set_value
engine.set_value(series._values, index, value)
File "pandas/_libs/index.pyx", line 95, in pandas._libs.index.IndexEngine.set_value
File "pandas/_libs/index.pyx", line 106, in pandas._libs.index.IndexEngine.set_value
ValueError: could not convert string to float: 'Hello'
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
下面是对应的代码:
ef = pd.read_excel(tshfile, sheet_name='Homework')
ef.at[0, 'HW2'] = 'Hello'
- 1
- 2
2.现象分析
其中将Excel某一单元的值,重新赋值为“string”的时候,就会出现前面的ValueError: Could not convert string to float:"Hello"的错误。
但是,如果之前对于某个单元赋值为String, 重新赋值为数值,则不会出现这个错误。
➤02 解决方法
利用pandas中的astype来对于某一列的属性进行修正。在下面代码中,首先通过对于HW3这一列转换成 string, 然后再进行幅值,则可以避免出现上面的取值出错的问题。
ef['HW3'] = ef['HW3'].astype(str)
ef.at[0, 'HW3'] = 'Hello'
- 1
- 2
学号 姓名 HW1 HW2 HW3
0 2020210975 熊琦珞 88.0 88.0 Hello
1 2020210993 代发安 NaN NaN nan
2 2020211070 张云来 NaN NaN nan
3 2020211100 阮冶 NaN NaN nan
4 2020211152 姜铭巍 NaN NaN nan
5 2020211164 李凯望 NaN NaN nan
6 2020310898 宋嘉昊 NaN NaN nan
7 2020213895 毛帆 NaN NaN nan
8 2020310675 饶世杰 NaN NaN nan
9 P20109001 李振宇 NaN NaN nan
10 P20109004 张童禹 NaN NaN nan
11 P20109009 李雨来 NaN NaN nan
12 P20109010 贾于 NaN NaN nan
13 2018310903 饶永铭 NaN NaN nan
14 2019211372 周恩光 NaN NaN nan
15 2020211172 张豪杰 NaN NaN nan
16 2020213828 苗润发 NaN NaN nan
17 2020215196 刘佳文 NaN NaN nan
18 2020215228 毛治齐 NaN NaN nan
19 2020215231 李洋 NaN NaN nan
20 2020215229 王紫颐 NaN NaN nan
21 2020210891 智佩渊 NaN NaN nan
22 2020310735 董颖 NaN NaN nan
23 2019310950 谭子萌 NaN NaN nan
24 2019310972 沈帅 NaN NaN nan
25 2020210250 于秋爽 NaN NaN nan
26 2020210995 黄思超 NaN NaN nan
27 2020211189 张桀 NaN NaN nan
28 2020211191 徐子豪 NaN NaN nan
29 2020310855 邓瑞亮 NaN NaN nan
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
➤※ 附件
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST.PY -- by Dr. ZhuoQing 2020-12-31
#
# Note:
#============================================================
from head import *
import pandas as pd
tshfile = r'D:\Temp\学生信息-TSH.xls'
ef = pd.read_excel(tshfile, sheet_name='Homework')
ef['HW3'] = ef['HW3'].astype(str)
ef.at[0, 'HW3'] = 'Hello'
ef.to_excel(tshfile, sheet_name='Homework', index=False)
printf(ef)
#------------------------------------------------------------
# END OF FILE : TEST.PY
#============================================================
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
文章来源: zhuoqing.blog.csdn.net,作者:卓晴,版权归原作者所有,如需转载,请联系作者。
原文链接:zhuoqing.blog.csdn.net/article/details/112004963
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)