【问题标题】:Assign values to csv file将值分配给 csv 文件
【发布时间】: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


【解决方案1】:

这里有两种方法可以实现您所描述的:

# create data
records = pd.DataFrame({'Name': ['Rosy', 'Pinky', 'Johncy', 'Mary'],
                        'Department': ['CSE', 'IT', 'EEE', 'CSE'],
                        'Address': ['DEL', 'MUM', 'CHN', 'HYD']})
nameDic = {'Rosy':0, 'Pinky':1, 'Johncy':2, 'Mary':3}

# using lambda function
records['Name'] = records['Name'].apply(lambda x: nameDic.get(x, 0))

OR

# using built in replace function
records['Name'] = records['Name'].replace(nameDic)

【讨论】:

  • 1) 是您创建的nameDict(使用nameList)还是有问题? - 请忽略 nameList 。考虑以下是excel数据。姓名 部门地址 Rosy CSE CHN Pinky IT HYD Johncy CSE MUM Mary EEE DEL 我正在尝试用员工 ID 替换姓名(例如,姓名:Rosy 应该使用 empid 0 更新)。
  • 请检查并帮助我使用 lambda 函数做同样的事情
猜你喜欢
  • 2016-05-14
  • 1970-01-01
  • 1970-01-01
  • 2019-01-16
  • 1970-01-01
  • 2020-05-18
  • 1970-01-01
  • 1970-01-01
  • 2021-08-02
相关资源
最近更新 更多