【发布时间】:2021-04-09 02:02:29
【问题描述】:
我找到了“NAME”列的唯一值,并将数值分配给 csv 文件中的每个名称(如字典中给出的)。我可以用下面的代码完成它。有人可以帮助使用 lambda 函数实现相同的目标吗?如何使用 lambda 函数实现相同的功能。
import pandas as pd
import sys
def dictionaryWithNormalFunction():
file_loc1= 'filepath'
# load the data with pd.read_csv
record = pd.read_csv(file_loc1)
nameDic ={}
nameDic={'Rosy':0,'Pinky':1,'Johncy':2,'Mary':3}
for name,value in nameDic.items():
record.loc[record['NAME'].astype(str).str.lower() == name.lower(), "NAME"] = value
record.to_csv(file_loc1)
dictionaryWithNormalFunction()
csv 数据如下,
我想用字典中的学生证替换姓名,
nameDic={'Rosy':0,'Pinky':1,'Johncy':2,'Mary':3}# 这个字典数据与 csv 文件的大小写相同。学生id和姓名映射将手动添加到字典中
使用 lambda 函数将 csv 文件中的名称替换为学生 ID。如何使用 lambda 函数实现这一点?
csv 文件内容应如下所示
【问题讨论】:
-
我不知道你为什么要使用 lambda,但你可以通过
record.NAME = record.NAME.str.lower().replace(nameDic)更轻松地实现同样的目标 -
我将字典中每个名称的数值分配给 csv 文件。这必须使用 lambda 函数来实现。但我不确定如何执行。所以我继续正常的功能。
-
嗨 Rosy,正如@Stef 建议的那样,您只需一行代码就可以实现您想要的(或者您也可以使用 lambda 函数),但您需要提供适当的信息以供我们使用. 1)用一些例子编辑你的帖子和2)如何获得nameDic?您是创建它还是给出了问题? (这很重要:需要知道字典的键是小写还是混合大小写)
-
查看此链接以了解如何提出好的熊猫问题:stackoverflow.com/questions/20109391/…
-
我已经用例子编辑了我的问题,你能帮我实现同样的目标吗?@Stef @manju-dev
标签: python pandas dictionary lambda