.py文件中有一个类,其中包含两个函数。
new_column
根据现有列(Col1和Col2)的值生成一个新列。
transform_df
通过lambda表达式将上一个函数应用于数据框。
最终结果如下:
Col1 Col2 col3
0 a b ab
1 a b ab
2 a c None
3 a b ab
如何在新文件/笔记本中使用这些功能?
# kept within file df_functions.py
class Functions():
def __init__(self, path):
self.path = path # path to .csv
# function to create new column, based on Col1 and Col2 values
def new_column(self, row):
if (row['Col1'] == 'a') & (row['Col2'] == 'b'):
return 'ab'
# apply previously defined function via lambda expression
def transform_df(self, path):
df = pd.read_csv(self.path)
# apply function 'new_column' to df
df['col3'] = df.apply(lambda row: self.new_column(row), axis=1)
# other potential functions applications here
return df
我尝试了以下方法:
from df_functions import Functions
df_path = '../datafile.csv'
FunctionsObject = Functions(path=df_path)
new_df = FunctionsObject.transform_df(path=df_path)
但是返回
NameError: ("name 'new_column' is not defined", 'occurred at index 0')
答案 0 :(得分:0)
似乎是与对包含该类的.py文件进行编辑有关的问题。进行更改后,我重新启动了内核,导入的功能按预期工作。