您可以先筛选所需的行,应用函数,然后分配给新列。熊猫们将在缺失的行中填充
NaN
. 这通常比为每行运行apply更有效。
import pandas as pd
from numpy import NaN
df = pd.DataFrame({'Col1': [1, 9, NaN],
'Col2': [1, 3, 5]})
def sample_func(v1, v2, token):
# call API
r = cl_apicall(v1, v2, token)
return r
# mock api call
def cl_apicall(v1, v2, token):
return f"{v1},-{v2}-{token}"
# Apply function
#df['new_col'] = df.apply(lambda x: sample_func(x['Col1'], x['Col2'], 'xxxxxx'), axis = 1)
df['new_col'] = df[df['Col1'].isnull()].apply(lambda x: sample_func(x['Col1'], x['Col2'], 'xxxxxx'), axis = 1)
print(df)
后果
Col1 Col2 new_col
0 1.0 1 NaN
1 9.0 3 NaN
2 NaN 5 nan,-5.0-xxxxxx