回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我几乎没有看到其他类似的问题报告,但我无法复制我的情况下的解决方案。</p>
<p>我的问题更简单,因为我有一个数字列表和一个字符串列表</p>
<pre><code>number = [21, 44, 31, 553, 63, 35]
access = ["denied", "Try Again", "Retry", "Accepted", "Error", "Success"]
</code></pre>
<p>我压缩了它们并创建了一对,每个值如下</p>
<pre><code>testInput = zip(number, access)
output:
[(21, 'denied'), (44, 'Try Again'), (31, 'Retry'), (553, 'Accepted'), (63, 'Error'), (35, 'Success')]
</code></pre>
<p>我试图遍历每一对并执行我的函数,该函数根据对的值将它们映射到一个团队名称。我的尝试是:</p>
<pre><code>def mapping(number, access):
team = ''
checkNumberAndAccess = zip(number, access)
for number, access in checkNumberAndAccess:
if number in range(20,30):
team = 'Revolt'
elif (number in range(40,50)) and (access == 'Try Again'):
team = 'Strike'
elif (number in range(60,100)) and (access == 'Error'):
team = 'Exception'
print team
return team
</code></pre>
<p>我希望“Team”变量保存每对的映射输出值,因此这是我执行函数的地方:</p>
<pre><code>for number, access in testInput:
Team = mapping(number, access)
df = df.<a href="https://www.cnpython.com/list/append" class="inner-link">append</a>({'Access Message': access, 'Number': number}, ignore_index=True)
print df
</code></pre>
<p>在执行映射函数时,出现“TypeError:zip argument#1 must support iteration”错误。是不是放错地方了?</p>
<p>完整代码:</p>
<pre><code>import pandas as pd
df = pd.DataFrame()
number = [21, 44, 31, 553, 63, 35]
access = ["denied", "Try Again", "Retry", "Accepted", "Error", "Success"]
def mapping(number, access):
team = ''
checkNumberAndAccess = zip(number, access)
for number, access in checkNumberAndAccess:
if number in range(20,30):
team = 'Revolt'
elif (number in range(40,50)) and (access == 'Try Again'):
team = 'Strike'
elif (number in range(60,100)) and (access == 'Error'):
team = 'Exception'
print team
return team
testInput = zip(number, access)
print testInput
for number, access in testInput:
Team = mapping(number, access)
df = df.append({'Access Message': access, 'Number': number}, ignore_index=True)
print df
</code></pre>