我一直在搜索最佳的方法,以应用一个函数,该函数获取多个单独的Pandas数据框列,并在同一数据框中输出多个新列。假设我有以下内容:
def apply_func_to_df(df):
df[['new_A', 'new_B']] = df.apply(lambda x: transform_func(x['A'], x['B'], x['C']), axis=1)
def transform_func(value_A, value_B, value_C):
# do some processing and transformation and stuff
return new_value_A, new_value_B
我试图将上述函数应用于整个DataFrame
df
,以输出2个新列。但是,这可以普遍适用于一个使用案例/函数,该函数接受n
个DataFrame列,并将m
个新列输出到同一DataFrame。以下是我一直在尝试的内容(成功程度不同):
- 创建一个Pandas系列以进行函数调用,然后将其附加到现有DataFrame,
- 压缩输出列(但在我的当前实现中存在一些问题)
- 重写基本函数
transform_func
,明确预期行(即字段)A
,B
,C
,然后对df应用该函数:
def transform_func_mod(df_row):
# do something with df_row['A'], df_row['B'], df_row['C]
return new_value_A, new_value_B
我希望有一个通用的、符合Python风格的方法来完成这个任务,同时考虑到性能(内存和时间)。由于我不熟悉Pandas,所以我一直在努力解决这个问题,任何建议都将不胜感激。