Python 对于带有f字符串和数据帧的循环

Python 对于带有f字符串和数据帧的循环,python,pandas,dataframe,for-loop,f-string,Python,Pandas,Dataframe,For Loop,F String,我需要尝试创建两个循环(必须分开): 循环1)对于每个水果: 如果那个水果是真的,就保持成排 删除日期重复的行(可以删除任一行) 将上述结果保存为每个水果的数据帧 循环2)对于创建的每个数据帧,在FROUT_分数上绘制日期: concat apple_score banana_score date apple banana 1 apple 0.400 0.400 2010-02-12 Tru

我需要尝试创建两个循环(必须分开):

循环1)对于每个水果:

  • 如果那个水果是真的,就保持成排
  • 删除日期重复的行(可以删除任一行)
  • 将上述结果保存为每个水果的数据帧
  • 循环2)对于创建的每个数据帧,在FROUT_分数上绘制日期:

        concat   apple_score  banana_score       date        apple      banana  
    1   apple     0.400         0.400        2010-02-12      True        False  
    2   banana    0.530         0.300        2010-01-12      False       True   
    3   kiwi      0.532          0.200       2010-03-03      False       False  
    4   bana      0.634         0.100        2010-03-03      False       True   
    
    我试过:

    水果=['苹果','香蕉','橘子']
    对于水果中的水果:
    选定的_行=df[df[水果]==True]
    df_f'{fruit}'=选定的_行。删除重复项(subset='date')
    对于水果中的水果:
    图(x=“日期”,y=(f{fruit}{fruit}}得分),kind=“行”)
    
    你应该按照@youyoun的建议做点什么:

    dfs = {}
    fruits = ['apple',  'banana']
    for fruit in fruits:
        selected_rows = df[df[ fruit ] == True ].drop_duplicates(subset='date')
        dfs[f'df_{fruit}'] = selected_rows
    
    for a,v in dfs.items():
        print(a)
        print(v)
    
    输出:

    df_apple
      concat  apple_score  banana_score        date  apple  banana
    1  apple          0.4           0.4  2010-02-12   True   False
    df_banana
       concat  apple_score  banana_score        date  apple  banana
    2  banana        0.530           0.3  2010-01-12  False    True
    4    bana        0.634           0.1  2010-03-03  False    True
    

    您是否正在尝试以编程方式定义变量的名称?例如,您希望得到一个名为df_apple的变量?您可以使用dict而不是基于for循环得到变量名:然后使用dict,
    fruits_df={}
    在for循环中使用
    fruits_df[fruit]=…
    @Manakin我认为这行不通,因为他得到了“bana”在concat中,但列banana设置为true他希望在同一个水果之间删除重复的日期,另一个将删除具有相同日期的所有水果的重复。他不是在dataframe上循环,而是在fruits上循环。@Youyoun您可以在多个列上子集,只需将
    fruits
    添加到
    。在这里删除重复项
    并不复杂,也不需要迭代列表。更简单的是,您可以执行
    dfs={fruit,水果数据,df.groupby('fruit')中的数据。unique()
    或者类似的东西。