我正在尝试运行一个代码来根据数据帧中的信息告诉我 True/False,但它总是响应 False

I am trying to run a code to tell me True/False based on info in a dataframe, but it always responds False

提问人:theocodes03 提问时间:11/11/2023 更新时间:11/11/2023 访问量:54

问:

我正在尝试遍历 DataFrame 的行,并将每个相应流派列的值从 False 更新为 True(如果该流派出现在原始流派列中)。

genre_list = ['Action', 'Adventure', 'Sci-Fi','Mystery','Horror','Thriller','Animation','Comedy','Family','Fantasy', 'Drama','Music','Biography','Romance','History','Crime','Western','War','Musical','Sport']

for genres in df.Genre:
  df[genres] = False
for index, row in df.iterrows():
  Genre = str(row['Genre']).split(', ')
for genres in Genre:
  if genre in genres:
    df.at[index, genre] = True

但是,当我运行代码时,结果每次都给我 false。我尝试调整循环并将其完全从循环中取出,但它继续给我错误。

    Rank                   Title                  Genre  \
995   996    Secret in Their Eyes    Crime,Drama,Mystery   
996   997         Hostel: Part II                 Horror   
997   998  Step Up 2: The Streets    Drama,Music,Romance   
998   999            Search Party       Adventure,Comedy   
999  1000              Nine Lives  Comedy,Family,Fantasy 

     Runtime (Minutes)  Rating  Votes  ...  Adventure,Biography  \
995                111     6.2  27585  ...                False   
996                 94     5.5  73152  ...                False   
997                 98     6.2  70699  ...                False   
998                 93     5.6   4881  ...                False   
999                 87     5.3  12435  ...                False   

     Adventure,Biography,Crime  Comedy,Drama,Musical  Comedy,Family,Romance  \
995                      False                 False                  False   
996                      False                 False                  False   
997                      False                 False                  False   
998                      False                 False                  False   
999                      False                 False                  False   

     Biography,Drama,Family  Drama,Fantasy,Musical  Adventure,Family  \
995                   False                  False             False   
996                   False                  False             False   
997                   False                  False             False   
998                   False                  False             False   
999                   False                  False             False   

     Adventure,Comedy,Fantasy  Drama,Family,Music  Comedy,Family,Fantasy  
995                     False               False                  False  
996                     False               False                  False  
997                     False               False                  False  
998                     False               False                  False  
999                     False               False                  False  

[5 rows x 232 columns]

我是 Python 的新手,所以我对循环的工作原理知之甚少,但我看不出这个循环有什么问题。

我尝试过遍历每一行并重写代码,但它总是错误的。

Python 数据帧 循环

评论

0赞 Yuri Ginsburg 11/11/2023
的值是多少?我没有看到任何分配。genre
0赞 John Gordon 11/11/2023
if genre in genres:是的,变量在哪里分配?genre
0赞 theocodes03 11/11/2023
明白了!我只是把它从“流派”改成了“流派”,就像我之前在开头写的那样。不过,我仍然对我的所有结果都是错误的。
0赞 Thierry Lathuille 11/11/2023
在循环期间/之后使用调试器或只是您的变量,看看它们实际上是什么 - 而不是您认为的。print
0赞 theocodes03 11/12/2023
这并没有帮助我修复它:(!所有的变量都是预期的。

答: 暂无答案