所以我有一个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是列名。
添加回答
举报
0/150
提交
取消