下面代码中的第二个for循环似乎忽略了“TEST TWO”结果的根列表中的值。我不明白为什么-有什么建议吗?你知道吗
import pandas as pd
columns = ['id', 'issye_type']
df = pd.DataFrame(columns=columns)
# print(df)
root = ['issue A',
'issue B'
]
print('\nTEST ONE')
for root in root:
b = df.issye_type.str.startswith(root, na=False).sum()
print('# of', root, "issues: ", b)
print('\nTEST TWO')
for root in root:
c = df.issye_type.str.startswith(root, na=False).sum()
print('# of', root, "issues: ", c)
结果:
TEST ONE
# of issue A issues: 0
# of issue B issues: 0
TEST TWO
# of i issues: 0
# of s issues: 0
# of s issues: 0
# of u issues: 0
# of e issues: 0
# of issues: 0
# of B issues: 0
我看到您的bug在两个循环中使用
for root in roots:
更好。你知道吗在第二个循环中,全局
root
变量被第一个循环中浏览的root
变量擦除。你知道吗问题是您使用同一个变量来保存列表和迭代变量:
因此,当第一个循环完成时,
root
现在包含列表中的最后一个字符串,而不是列表。因此,第二个循环对该字符串中的字符进行迭代。你知道吗使用其他变量:
相关问题 更多 >
编程相关推荐