a=0
for i in range (0,len(df)):
if df['column name'][i][7]!='1' or df['column name'][i][7]='6':
a=a+1
如果我运行这段代码,则会出现错误“字符串索引超出范围”。有人可以帮我解决这个问题。 附言df大约有1000万行
答案 0 :(得分:0)
如果索引大于或等于字符串的长度,则会发生此错误。
您可以检查字符串是否等于或大于7
个字符。
a=0
for i in range (0,len(df)):
data = df['column name'][i]
if len(data) > 6 and (data[7] != '1' or data[7] == '6'):
a=a+1
您可以通过列表理解来实现
can_count = lambda row: len(row['col']) > 6 and (row['col'][7] != '1' or row['col'][7] == '6')
a = sum((1 for _, row in df.iterrows() if can_count(row)))
要注意的一件事是df['column name'][i][7]='6'
应该是==
而不是=
答案 1 :(得分:0)
我看到您在代码中使用赋值运算符'='而不是'=='。我已复制粘贴该行以表明这一点。您能否重试并指出最终得到的错误消息。另外,请进一步说明您希望通过该操作实现的目标。
CC_AVX2_SUPPORT
答案 2 :(得分:0)
可以为您的字符串添加一个示例吗?您的数据可能太短了。
如果使用以下命令:df ['column name'] [i] [7],则您的字符串长度至少应为8个字符。
祝你好运