如何在python&pandas中创建新列

问题描述:

我试图创建一个新列,而不是使用当前列的现有值,但使用新值。我继续并创建了一个函数来执行此操作,但是,我收到一个错误消息。我要的结果是每个市有IE浏览器= 1,SC = 2等如何在python&pandas中创建新列

def ET(ET): 
    return "ET" == 1 
def TO(TO): 
    return "TO" == 2 
def NY(NY): 
    return "NY" == 3 
def SC(SC): 
    return "SC" == 4 
def coded_municipality(row): 
    if row['coded_municipality'] == "ET" : 
     return 1 
    if row['coded_municipality'] == "NY" : 
     return 2 
    if row['coded_municipality'] == "SC" : 
     return 3 
    if row['coded_municipality'] == "TO" : 
     return 4 

marriage_data['Code'] = marriage_data.apply(lambda row : coded_municipality(row),axis=1) 

但是一个码数,我仍然得到一个错误说“coded_municipality”,“在指数发生0”

我做错了什么?

您可以使用地图。

d = {"ET": 1, "TO": 2, "NY": 3, "SC": 4} 
marriage_data['Code'] = marriage_data['coded_municipality'].map(d)