我很想知道是否可以将多个函数应用于单个pandas数据帧列。例如,假设我有三个函数:
然而,正如您所看到的,我创建了3列。 因此,我的问题是如何同时将上述3个函数高效地应用于特定列的大型数据框中? 预期结果应为:
请注意,我知道我可以将3列合并为一列。然而,我想知道上述问题是否可行。
In:
def foo(col):
if 'hi' in col:
return 'TRUE'
def bar(col):
if 'bye' in col:
return 'TRUE'
def baz(col):
if 'ok' in col:
return 'TRUE'
以下是数据框:
dfs = pd.DataFrame({'col':['The quick hi brown fox hi jumps over the lazy dog',
'The quick hi brown fox bye jumps over the lazy dog',
'The NO quick brown fox ok jumps bye over the lazy dog']})
如果我想将每个函数应用于 col
,通常会使用pandas的apply函数:
dfs['new_col1'] = dfs['col'].apply(foo)
dfs['new_col2'] = dfs['col'].apply(bar)
dfs['new_col3'] = dfs['col'].apply(baz)
dfs
输出:
col new_col1 new_col2 new_col3
0 The quick hi brown fox hi jumps over the lazy dog TRUE None None
1 The quick hi brown fox bye jumps over the lazy... TRUE TRUE None
2 The NO quick brown fox ok jumps bye over the l... None TRUE TRUE
然而,正如您所看到的,我创建了3列。 因此,我的问题是如何同时将上述3个函数高效地应用于特定列的大型数据框中? 预期结果应为:
col new_col
0 The quick hi brown fox hi jumps over the lazy dog TRUE
1 The quick hi brown fox bye jumps over the lazy... TRUE, TRUE
2 The NO quick brown fox ok jumps bye over the l... TRUE, TRUE
请注意,我知道我可以将3列合并为一列。然而,我想知道上述问题是否可行。