Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何循环多个数据帧以基于行标准选择数据帧?_Python_Python 3.x_Pandas_Loops_Dataframe - Fatal编程技术网

Python 如何循环多个数据帧以基于行标准选择数据帧?

Python 如何循环多个数据帧以基于行标准选择数据帧?,python,python-3.x,pandas,loops,dataframe,Python,Python 3.x,Pandas,Loops,Dataframe,我在Pandas中有一些Python数据帧,我想循环它们,找出哪个数据帧符合我的行标准,并将其保存在新的数据帧中 d = {'Count' : ['10', '11', '12', '13','13.4','12.5']} df_1= pd.DataFrame(data=d) df_1 d = {'Count' : ['10', '-11', '-12', '13','16','2']} df_2= pd.DataFrame(data=d) df_2 这是我想要使用的逻辑,但它不包含正确的语

我在Pandas中有一些Python数据帧,我想循环它们,找出哪个数据帧符合我的行标准,并将其保存在新的数据帧中

d = {'Count' : ['10', '11', '12', '13','13.4','12.5']}
df_1= pd.DataFrame(data=d)
df_1

d = {'Count' : ['10', '-11', '-12', '13','16','2']}
df_2= pd.DataFrame(data=d)
df_2
这是我想要使用的逻辑,但它不包含正确的语法

for df in (df_1,df_2)
    if df['Count'][0] >0 and df['Count'][1] >0 and df['Count'][2]>0 and df['Count'][3]>0 
    and (df['Count'][4] is between df['Count'][3]+0.5 and df['Count'][3]-0.5) is True:
        df.save
正确的输出是df_1…,因为它符合我的条件。如何创建新的
数据帧
列表
,以保存结果


如果您在评论中有任何问题,请告诉我。我对您的代码所做的主要更新是:

  • .loc
  • 使用
    .all()
  • 代码如下:

    import pandas as pd 
    
    # df_1 & df_2 input taken from you
    d = {'Count' : ['10', '11', '12', '13','13.4','12.5']}
    df_1= pd.DataFrame(data=d)
    
    d = {'Count' : ['10', '-11', '-12', '13','16','2']}
    df_2= pd.DataFrame(data=d)
    
    # my solution here
    df_1['Count'] = df_1['Count'].astype('float')
    df_2['Count'] = df_2['Count'].astype('float')
    
    my_dataframes = {'df_1': df_1, 'df_2': df_2}
    good_dataframes = []
    for df_name, df in my_dataframes.items():
        if (df.loc[0:3, 'Count'] > 0).all() and (df.loc[3,'Count']-0.5 <= df.loc[4, 'Count'] <= df.loc[3, 'Count']+0.5):
            good_dataframes.append(df_name)
    
    good_dataframes_df = pd.DataFrame({'good': good_dataframes})
    

    到底是什么问题?你的伪代码看起来不错,为什么不用Python编写呢?不知道为什么人们会投票否决你。您提供了一个带有示例数据的清晰问题,并提到您当前的代码抛出语法错误。我会提供一个简短的答案我更喜欢有一个数据框名称的列表,它是df_1…df4…df5,对于那些符合条件的人,在列表或数据框中,我提供了一个屏幕快照更新了我的答案,以回应你问题更新中发布的
    好的
    df屏幕快照事实上,我的实际标准很复杂,当我在if条件中添加OR时,如何在更长的if条件下添加正确的缩进以打开新行?我对你的最后一个问题有点困惑。您可以在布尔值中使用
    ,就像我的答案中有
    一样。您的缩进问题听起来像是一个不同的问题,可能取决于您的代码编辑器如何处理空格或换行符。如果你发布另一个可复制的示例作为新问题,你可以在这里链接到它,我来看看。没关系,我在这里发布了一个新问题
    >>> print(good_dataframes_df)
       good
    0  df_1