为了账号安全,请及时绑定邮箱和手机立即绑定

通过包含特殊字符连字符“-”的列标签访问 DataFrame 元素失败

通过包含特殊字符连字符“-”的列标签访问 DataFrame 元素失败

UYOU 2023-06-20 16:15:52
所以我有一个df = read_excel(...)循环确实有效:for i, row in df.iterrows(): #loop through rows     a = df[df.columns].SignalName[i] #column "SignalName" of row i, is read     b = (row[7]) #column "Bus-Signalname" of row i, taken primitively=hardcoded可以访问 a,如何用 excel 表中动态找到/定位的“Bus-Signalname”元素替换硬编码的 b = (row[7])。有哪些方法可以做到这一点? b = df[df.columns].Bus-Signalname[i]不起作用。
查看完整描述

2 回答

?
qq_笑_17

TA贡献1818条经验 获得超7个赞

要访问整个列,请运行df['Bus-Signalname']:所谓的属性符号df.Bus-Signalname )在这里不起作用,因为“-”不允许作为属性名称的一部分。

它被视为减号运算符,因此:

  • 它之前的表达式是df.Bus,但df可能没有带有 whis 名称的列,因此抛出异常,

  • 在它之后发生的事情(Signalname)应该是一个变量,但你可能没有这样的变量,这是可能导致异常的另一个原因。

另请注意,您当时写了[i]. 据我了解,i是一个整数,您想要访问此列中的第i个元素。

请注意,您检索到的列是一个系列,其索引与整个DataFrame相同。

如果索引是默认的(连续的数字,从0开始),你就成功了。否则(如果索引不包含i的值)您将失败。

访问 DataFrame 中的元素的更pandasonic语法是:

df.loc[i, 'Bus-Signalname']

其中i是相关行的索引,Bus-Signalname是列名。


查看完整回答
反对 回复 2023-06-20
?
倚天杖

TA贡献1828条经验 获得超3个赞

谢谢。在循环中,两者

df.loc[i, 'Bus-Signalname']

df['Bus-Signalname'][i]

工作。


查看完整回答
反对 回复 2023-06-20
  • 2 回答
  • 0 关注
  • 87 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信