啊啊啊啊啊吖

2019-03-14   阅读量: 915

数据分析师 Python数据分析

如何在Pandas中使用Apply函数应用/ lambda?

扫码加入数据分析学习群

我有两个数据集:

df5 = pd.DataFrame({"id":[1,2,3,4,5]})

df6 = pd.DataFrame({"ID":[1,2,3,4,5] ,"Name":["Tom","Dick","Harry","Mike","Sam"]})

我想使用apply或lambda apply将df5中的id替换为df6中的实际名称。我尝试过以下方法:

def extract_name2 (x):

name = df6[df6["ID"] == x]["Name"]

return name

df5["id"].apply(extract_name2)

这是我的输出:

Out[120]:

0 1 2 3 4

0 Tom NaN NaN NaN NaN

1 NaN Dick NaN NaN NaN

2 NaN NaN Harry NaN NaN

3 NaN NaN NaN Mike NaN

4 NaN NaN NaN NaN Sam

我也尝试过:

df5["id"].apply(lambda x: df6[df6["ID"] == x]["Name"])

但结果相同

有人可以帮帮我吗?

解决办法:当您说df6[df6["ID"] == x]输出是根据您给出的条件过滤的数据帧时。

您需要指定需要'Name'过滤数据帧列中的第一个单元格值。

这将为您提供所需的结果:

df5['id'].apply(lambda x: df6[df6['ID'] == x]['Name'].iloc[0])

更新:

您也可以不使用而执行此操作apply。用途merge:

pd.merge(df5, df6, how='left', left_on='id', right_on='ID')

OUTPUT:

id ID Name

1 1 Tom

2 2 Dick

3 3 Harry

4 4 Mike

5 5 Sam

8.5779 1 2 关注作者 收藏

评论(0)


暂无数据

推荐课程

推荐帖子