返回空数据帧的Python函数

返回空数据帧的Python函数,python,function,dataframe,Python,Function,Dataframe,我想创建一个函数,使用其他数据帧和一些过滤器创建一个数据帧。我的问题:当我应用函数时,输出数据帧是空的。。。然而,当我在没有循环和函数的情况下编写代码时,它是有效的,我不明白,我试图改变返回位置,但这不起作用 首先,我创建一个空的数据帧- df_Summary=pd.DataFrame(columns=['Country', 'population', 'average age', 'avg salary']) 然后我用两个参数定义一个函数-“df”和“fieldname”。我使用带有fiel

我想创建一个函数,使用其他数据帧和一些过滤器创建一个数据帧。我的问题:当我应用函数时,输出数据帧是空的。。。然而,当我在没有循环和函数的情况下编写代码时,它是有效的,我不明白,我试图改变返回位置,但这不起作用

首先,我创建一个空的数据帧-

df_Summary=pd.DataFrame(columns=['Country', 'population', 'average age', 'avg salary'])
然后我用两个参数定义一个函数-“df”和“fieldname”。我使用带有fieldname(使用星号*)的关键字参数来过滤多个数据并将其附加到输出df_摘要中

  def make_summary(df,*fieldname):
            global df_Summary
            for dfname in df:
                for field in fieldname:
................df_Summary=df_Summary.append(df[df['Country']==fieldname].reset_index().iloc[:,1:7],sort=False)
            return df_Summary

df_Summary_1 = make_summary(df_Exp_Final_IWM,'China','USA')

df_摘要_1作为空数据帧出现。函数应该从df数据框中返回两行,用于“美国”和“中国”国家/地区。

不确定您的目的。如果要选择列国家中包含“'USA'或'China'”的行,只需执行以下操作:df[df[“Country”].isin([“USA”,“China”])。

请将下面一行中的“filename”更改为“field”

发件人:

致:

这应该可以解决您的问题(我删除了sort=False,因为它抱怨append中没有“sort=False”)

df_Summary=df_Summary.append(df[df['Country']==fieldname].reset_index().iloc[:,1:7],sort=False)
df_Summary=df_Summary.append(df[df['Country']==field].reset_index().iloc[:,1:7])