Python中文
首页
教程
问答
标签
搜索
登录
注册
ValueError:没有足够的值来解压缩Python(预期值为2,实际值为1)
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<div> </div> <p>试图将数值转换为单词,但当数据集中存在任何空值时,会出现错误</p> <p><strong>输入数据:</strong></p> <pre><code>Total_value 253897 587619.10 15786 NaN 354783.36 </code></pre> <p><strong>输出</strong></p> <pre><code>value_words Two Lakh Fifty-Three Thousand Eight Hundred And Ninety-Seven Rupees Five Lakh Eighty-Seven Thousand Six Hundred And Nineteen Rupees And One Paise Fifteen Thousand Seven Hundred And Eighty-Six Rupees NaN Three Lakh Fifty-Four Thousand Seven Hundred And Eighty-Three Rupees And Thirty-Six Paise </code></pre> <p>当所有行都具有值时,它可以正常工作,但当任何行具有NaN值时,它都会出错</p> <p><strong>我一直在使用的代码:</strong></p> <pre><code>from num2words import num2words def word(x): rupees, paise = x.split('.') rupees_word = num2words(rupees, lang ='en_IN') + ' Rupees' if int(paise) > 0: paise_word = ' and ' + num2words(paise, lang ='en_IN') + ' Paise' word = rupees_word + paise_word else: word = rupees_word word = word.replace(',','').title() return word df['Total_value'] = df.Total_value.astype(str).apply(lambda x: word(x)) </code></pre> <p>但是,在执行上述脚本时,当它找到任何具有NaN值的行时,就会出现错误。ValueError:没有足够的值来解包(应为2,得到1)</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>很可能您只需要将函数应用于非NaN值</p> <pre><code>df['Total_value'] = df.Total_value.apply(lambda x: word(x) if pd.notnull(x) else x) </code></pre> <p>这可能比检查函数中的空值要快,但速度稍慢</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何变换矩阵中的区域?
3 回答
如何叠加不同单元格的图表?
7 回答
如何叠加张量图像
5 回答
如何只“grep过滤”邮件mbox文件中的邮件头
5 回答
如何只“清除”特定的Flask会话变量?
2 回答
如何只上传源文件到github?
2 回答
如何只下载数据Python的前x个字节
5 回答
如何只下载新文件?
4 回答
如何只与相对路径连接?
9 回答
如何只为1个字母后跟句号编写正则表达式?
7 回答
如何只为IsB列在表中不为空的记录设置IsA?
4 回答
如何只为pandas中数据帧的某些列绘制柱状图
10 回答
如何只为一个值创建计数图?
6 回答
如何只为一个函数存储一次常量?
5 回答
如何只为列中的特定值生成虚拟变量?
2 回答
如何只为在Python中使用的实现支付依赖惩罚?
9 回答
如何只交换两列的值,而将其余的保持在数据帧中?
3 回答
如何只从html中获取产品id?
2 回答
如何只从iloc中获取数据,而不从它附带的索引中获取数据,并将其放入sql where in{}查询中
9 回答
如何只从Pandas中的前20个唯一日期(其实例计数不相等)中选择所有列值
9 回答