Pandas 使用 apply() 到 运行 仅在部分数据帧上使用函数
Pandas using apply() to run the function only on part of the dataframe
我使用存储在 pandas 数据框列中的地址作为函数的参数来调用 Google 地图 API 并将结果存储在名为 address_components 在同一个数据帧中
dm.loc[: , 'address_components'] = dm.loc[:, ['streetNumber', 'streetName', 'city']].apply(
lambda row: get_address(row[0], row[1], row[2]), axis=1)
整个数据框非常大,我想 运行 在适合特定条件的部分数据框上使用相同的函数。我试过这个:
dm[dm['g_FSA'] == 'None'].loc[: , 'address_components'] = dm[dm['g_FSA'] == 'None'].loc[:, ['streetNumber', 'streetName', 'city']].apply(
lambda row: get_address(row[0], row[1], row[2]), axis=1)
但这不能正常工作。谁能帮我找出我的错误?
使用 Series.eq
, then use this mask along with DataFrame.loc
创建一个布尔掩码到 select 特定的行和列,然后使用 DataFrame.apply
应用自定义函数:
m = dm['g_FSA'].eq('None')
dm.loc[m, 'address_components'] = (
dm.loc[m, ['streetNumber', 'streetName', 'city']]
.apply(lambda s: get_address(*s), axis=1)
)
我使用存储在 pandas 数据框列中的地址作为函数的参数来调用 Google 地图 API 并将结果存储在名为 address_components 在同一个数据帧中
dm.loc[: , 'address_components'] = dm.loc[:, ['streetNumber', 'streetName', 'city']].apply(
lambda row: get_address(row[0], row[1], row[2]), axis=1)
整个数据框非常大,我想 运行 在适合特定条件的部分数据框上使用相同的函数。我试过这个:
dm[dm['g_FSA'] == 'None'].loc[: , 'address_components'] = dm[dm['g_FSA'] == 'None'].loc[:, ['streetNumber', 'streetName', 'city']].apply(
lambda row: get_address(row[0], row[1], row[2]), axis=1)
但这不能正常工作。谁能帮我找出我的错误?
使用 Series.eq
, then use this mask along with DataFrame.loc
创建一个布尔掩码到 select 特定的行和列,然后使用 DataFrame.apply
应用自定义函数:
m = dm['g_FSA'].eq('None')
dm.loc[m, 'address_components'] = (
dm.loc[m, ['streetNumber', 'streetName', 'city']]
.apply(lambda s: get_address(*s), axis=1)
)