【问题标题】:Accessing the last character of a specific element in python访问python中特定元素的最后一个字符
【发布时间】:2020-01-26 18:06:36
【问题描述】:

我目前正在构建类似闪存卡程序的东西,以帮助我使用 pandas 和 numpy 同时学习法语和 python。

我有一个包含 3 列的 csv,我将其转换为数据框(动词)。我的代码随机选择一行(选择)并给出一个法语单词,然后用户必须输入该单词的过去时版本(在数据框/csv的第三列中找到)。到目前为止,我已经完成了这部分工作。

我正在尝试添加一个“提示”功能,用户输入单词“提示”,它将给出选择数据框第 3 列中正确答案的最后一个字母。

我似乎无法弄清楚如何访问第三列的最后一个字母。

下面是一个孤立的部分,我只是想让它从数据框“选择”中打印第 0 行第 2 列的最后一个字符

verbs=pd.read_csv('u_participle.csv')
selection=(verbs.sample())
print(selection.iloc[0,2].str[-1:])

这给出了错误: AttributeError: 'str' 对象没有属性 'str'

我是在这里关闭还是我完全用最后一行吠叫了错误的树?

我已经看遍了,答案通常非常具体/我对 python 的了解还不足以理解答案

【问题讨论】:

标签: python-3.x string pandas dataframe slice


【解决方案1】:

在 Python(和一般情况下)中,字符串被视为数组。因此,要访问字符串中的最后一个条目,您只需键入 [-1]。 [0]。此外,要访问单个字符,您只需要一个数字,即 [-1],而不是您尝试执行的列表 [-1:]。

例如

给定:

x = "Name"

x[0] will equal 'N'
x[-1] will equal 'e'
x[1:-1] will equal 'ame'

因此,您要做的就是将代码更改为:

verbs=pd.read_csv('u_participle.csv')
selection=(verbs.sample())
print(selection.iloc[0,2][-1])

看看有没有用!

【讨论】:

  • 非常感谢!我想我把事情复杂化了
  • @Aidan 基本上.iloc[0, 2] 为您提供了该位置的实际对象,在本例中为str,因此您可以像对待字符串一样对待它...您需要在哪里使用str 访问器是如果您想获取列中所有内容的最后一个字符...例如:.iloc[:, 2].str[-1]
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-21
  • 2017-08-06
  • 1970-01-01
  • 1970-01-01
  • 2018-02-19
  • 1970-01-01
相关资源
最近更新 更多