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

所以我有一个

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]

不起作用。


UYOU
浏览 92回答 2
2回答

qq_笑_17

要访问整个列,请运行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是列名。

倚天杖

谢谢。在循环中,两者df.loc[i, 'Bus-Signalname']和df['Bus-Signalname'][i]工作。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python