我有一个df
,如下所示:
BDEW Article
0 999 Cola
1 998 Fanta
2 997 Sprite
3 996 Dew
4 995 Water
我们可以看到文章
列中每一篇文章的第一个字母都以大写字母开头。我要求用户选择一篇文章。如果用户以大写字母开头输入名称,我的代码可以正常工作。但是,如果用户输入的是<code>cola</code>而不是<code>cola</ccode>,我会得到一个错误:
是否要添加段 (是/否)?: y
您想添加哪篇文章?:可乐回溯(最近一次通话):
文件"",第5行,在bdew_value=df.loc[df['文章']==文章,'BDEW']. iloc[0]
getitem返回self中的文件“C:\ Users \ kashy \ anaconda 3 \ envs \ py36 \ lib \ site-packages \ pandas \ core \ indexing . py”,第1410行。_getitem_axis(maybe_callable,axis=axis)
文件"C:\用户\kashy\Anaconda3\envs\py36\lib\站点包\熊猫\核心\indexing.py",第2132行,_getitem_axis。_validate_integer(键,轴)
文件 “C:\Users\kashy\Anaconda3\envs\py36\lib\site-packages\pandas\core\indexing.py”,第 2063 行,_validate_integer引发 IndexError(“单个位置索引器越界”)
IndexError:单位置索引器越界
我认为错误是因为我在代码中使用了. iloc
。
有没有一种方法可以克服这个问题,即使用户在开头插入一个带有小字母的名称,代码也应该可以工作。
我的代码:
i = 0
while True:
add_seg = input('Do you want to add a segment (Y/N)?: ')
if (add_seg == 'Y')|(add_seg == 'y'):
article = (input('Which article would you like to add?: ')).lower()
bdew_value = df.loc[df['Article'] == article, 'BDEW'].iloc[0]
i = i + 1
INVOIC.add_segment(Segment('LIN', str(i), '', [str(bdew_value), 'Z01']))
elif (add_seg == 'N')|(add_seg == 'n'):
break
过滤似乎不返回任何行,即<code>df。loc[df['Article']==Article,'BDEW']返回空数据帧。您可以替换<code>。iloc[0]和。获取(0)
,然后控制bdew_value
不是
,如果是,则再次提示用户,指出未找到与上一个输入匹配的内容。
现在,过滤返回无行的原因是您应该
.captialize
输入(或 .降低
“文章”
列)以使大小写匹配。但是,即使在这种情况下遇到的特定问题已修复,也请大致考虑前一段。
我希望这能有所帮助:-)
将用户给出的输入转换为大写,然后进行比较。类似:
article = (input('你想添加哪篇文章?: ')).upper()
你说过,要使程序工作,第一个字母必须是大写字母。所以我想剩下的没关系。
或者,如果您愿意,您只能将第一个字母转换为大写:
article=(input('您想添加哪篇文章?:')).capitalize()
问题内容: 我正在尝试创建一个基本菜单,以检查输入的变量是否与定义的变量匹配。如果定义了变量,则获取已定义变量的数据。 例。 我输入 应该相等 问题答案: 这似乎是您要找的东西: 但是,这可能不是最好的策略,因为错字或恶意用户很容易使您的代码崩溃,系统过载或执行他们喜欢的任何其他讨厌的事情。对于这种特殊情况,更好的方法可能是
在下面的例子中,我试图接受用户的单字符输入,但是当运行程序时,我得到do...而循环执行多次。请参阅下面程序的结果。 如果有人能帮我找到答案,如何解决这个问题?
我正在尝试根据用户输入字段获取api数据。如何获取这些数据的值? 我的apiendpoint如下“http://localhost:8000/api/p_list?search=" . 每当用户输入值时,endpoint如下“http://localhost:8000/api/p_list?search=01这里输入的字段值为“01”。我想得到结果的值。 我可能是新来的反应。我尝试了下面这样的东西
问题内容: 如何从用户进行pygame打印输入: 我试图让用户键入一些内容,然后pygame将其打印在屏幕上。 这是我当前的程序: 我想要这样,当用户点击Enter时,它将清空屏幕。 帮我! 问题答案: 这是一个示例脚本,可将输入切换到屏幕。它显示了如何在遍历pygame事件队列时修改字符串。每帧都将清除屏幕,并重建名称表面并使其变白。 这是要点版本
我想使用jquery获取foreach循环中的输入字段值。下面是html结构 我试图通过这种方式获得价值 但这样,我只得到第一行的值。如何使用jQuery获取所有行的值?
问题内容: 我有一个输入字段,如下所示: 我想获取输入字段的值并将其分配给会话。如何使用PHP或jQuery做到这一点? 问题答案: 使用PHP 或超全局变量通过HTML标签的名称来检索输入标签的值。 例如,更改表单中的方法,然后通过输入名称回显该值: 使用方法: 要显示值: 使用方法: 要显示值: