创建过滤数据框的函数 pandas
Creating function to filter dataframe pandas
我正在通过实施一些项目来学习 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 中删除了行,但在函数外部没有。如果我打印()函数内的数据框,它就可以工作。但是在功能之外,它不起作用。
这样做的目的是让 my_data1 和 my_data2,在应用 delete() 之后,没有我不想要的公司。
我觉得这个问题的答案很明显,但我就是做不到。如果我不清楚,请告诉我。
谢谢!
您需要 return
它并重新分配它
def delete(df):
return df[df['Company'].isin(list_companies_to_mantain)
my_data1 = delete(my_data1)
我正在通过实施一些项目来学习 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 中删除了行,但在函数外部没有。如果我打印()函数内的数据框,它就可以工作。但是在功能之外,它不起作用。
这样做的目的是让 my_data1 和 my_data2,在应用 delete() 之后,没有我不想要的公司。
我觉得这个问题的答案很明显,但我就是做不到。如果我不清楚,请告诉我。
谢谢!
您需要 return
它并重新分配它
def delete(df):
return df[df['Company'].isin(list_companies_to_mantain)
my_data1 = delete(my_data1)