创建过滤数据框架pandas的功能。

问题描述 投票:0回答:1

我正在通过实施一些项目来学习Python和Pandas。

我有多个数据框,其中包含某些公司的信息。每家公司都在每个数据框的一行中,我需要从所有数据框中删除一些公司,从而删除一些行。我需要删除一些公司,因此需要删除所有数据框中的一些行。

我打算创建一个函数,从所有数据框中删除这些行。就像这样。

my_data1 = pd.read_csv(file1.csv)
my_data2 = pd.read_csv(file2.csv)

Company   Inf1 Inf2
c0        1     2
c1        2     4
c2        3     6
c3        4     8
c4        5    10
c5        6    12


list_companies_to_mantain = [c1, c4]

def delete(df):
   df = df[df['Company'].isin(list_companies_to_mantain)

delete(my_data1)
delete(my_data2)


Company   Inf1 Inf2
c1        2     4
c4        5    10

问题是: 这些行在函数内部的df中被删除了,但在函数之外却没有。如果我在函数内部打印()数据框,它就会工作。但是在函数之外,它就不工作了。

这样做的目的是为了在应用delete()后,有my_data1和my_data2,没有我不要的公司。

我觉得这个答案很明显,但我根本做不到。如果我说的不清楚,请告诉我。

谢谢!

pandas function dataframe rows
1个回答
1
投票

你需要 return 派回

def delete(df):
   return df[df['Company'].isin(list_companies_to_mantain)

my_data1 = delete(my_data1)
© www.soinside.com 2019 - 2024. All rights reserved.