Я работаю над чем-то, где я хочу удалить фрейм данных, который был отправлен в функцию, из другой функции, в которой он был создан.Как мне это сделать?
Пример:
Функция взять df
и удалить его:
def delete_file(df):
del df
Функция для создания df
и отправки его в мою delete_file()
функцию:
def create_and_delete_file():
import pandas as pd
# create / import dataframe
x = pd.DataFrame({'name':['jon','mary'],
'age':[12,45]})
# send the dataframe to my delete function
delete_file(x)
# now print it
print(x)
Давайте назовем функции.Как видите, я все еще могу печатать фрейм данных x
после того, как отправил его в свою функцию delete_file
.
create_and_delete_file()
name age
0 jon 12
1 mary 45
Как я могу удалить его?
edit Более подробная информация в красном тексте ниже (я знаю, что есть лучшие способы анализа df, это только гипотетически) В кадре данных есть 4 города, поровну разделенные.Размер Datafarme составляет 1 ГБ.
# dataframe size 1 Gigabyte
def _calculate_city_sales(df):
'''
The dataframe 'df' is 1 GB in size
We will split it into four segments
Each segment is 250Mb in size
So at the end of the operation (Berlin)
has RAM usage not doubled?
'''
NY = df[df['city']=='NY']
sales = NY.sales.sum()
print(f'New York Sales: {sales}') # 1GB + 250Mb of RAM in use
LA = df[df['city']=='LA']
sales = LA.sales.sum()
print(f'Los Angeles Sales: {sales}') # 1GB + 250Mb + 250Mb of RAM in use
HK = df[df['city']=='HK']
sales = HK.sales.sum()
print(f'Hong Kong Sales: {sales}') # 1GB + 250Mb + 250Mb + 250Mb of RAM in use
BL = df[df['city']=='BL']
sales = BL.sales.sum()
print(f'Berlin Sales: {sales}') # <----- Ram Usage now at 2GB?