Idr*_*ris 7 python machine-learning dataframe python-3.x pandas
过去 30 分钟我一直在尝试调试我的代码,但没有成功,也许你可以帮忙?
错误位于第 17 行内,但我真的不知道为什么会发生这种情况。
因此,我使用字典来存储函数is_nontrivial_reverse_number()返回的数据,这是一种boolean类型。0我迭代它并插入从到 的所有值1100。
然后我将我的字典插入到DataFrame图书馆中pandas。
然后我迭代 dataFrame 以检索设置为 true 的值的计数。
但问题是row["nonTrivial"],尽管我在不同的字典和数据帧集上使用了相同的函数,但这似乎不起作用。
import pandas as pd2
dic2 = {'nonTrivial': [is_nontrivial_reverse_number(x) for x in range(0, 1100)]}
dic2
df2 = pd2.DataFrame(dic2)
df2 = df2.set_index('nonTrivial')
#df2.head()
##df2.shape
#df.dtypes
for row in df2.iterrows():
if (row["nonTrivial"]==True):
n = n+1
print (n)
Run Code Online (Sandbox Code Playgroud)
预期结果 :n=2
import pandas as pd2
dic2 = {'nonTrivial': [is_nontrivial_reverse_number(x) for x in range(0, 1100)]}
dic2
df2 = pd2.DataFrame(dic2)
df2 = df2.set_index('nonTrivial')
#df2.head()
##df2.shape
#df.dtypes
for row in df2.iterrows():
if (row["nonTrivial"]==True):
n = n+1
print (n)
Run Code Online (Sandbox Code Playgroud)
Tre*_*ous 10
为什么没有人提到他可以像这样在 for 循环中解压元组
for index, row in df2.iterrows():
if (row["nonTrivial"]==True):
n = n+1
print (n)
Run Code Online (Sandbox Code Playgroud)
小智 5
iterrow返回一个tuple. 如果您需要访问所需列的索引,可以使用以下命令:
for row in df2.iterrows():
if (row[1][df.columns.get_loc('nonTrivial') == True):
n = n+1
Run Code Online (Sandbox Code Playgroud)
只是一个注释,您不需要循环行。你可以这样做:
n += (df2['nonTrivial']==True).sum()
Run Code Online (Sandbox Code Playgroud)