Python在什么情况下,我可以这样看作为输出“<map object at 0x0000025F7E342BA8>”

2024-10-01 17:24:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python编程的新手。我读一个csv使用熊猫libs

我使用的代码是这样的:

csv_file = pd.read_csv("C:\\location-of-csv\\sample-csv.csv");
def update_measure(data):
    return data.split('_', 1)[1]

csv_file['UpdatedMeasurement'] = map(update_measure, csv_file['Measurement'])

当我打印输出时:

print(csv_file.head())

获取这样的值

  Measurement                   UpdatedMeasurement
0 COL_TOOL_QUALITY             <map object at 0x0000025F7E342BA8>
1 COL_COMM_STATUS              <map object at 0x0000025F7E342BA8>
2 COL_SEN_FW_HRTBT_STATUS      <map object at 0x0000025F7E342BA8>
3 COL_WNL_FW_HRTBT_STATUS      <map object at 0x0000025F7E342BA8>
4 COL_COMM_STATUS2             <map object at 0x0000025F7E342BA8>   

请告诉我我的代码出了什么问题。 请让我参考文件,在那里我可以找到我的错误,并希望彻底精益它,这样我就会知道我到底做错了什么


Tags: csv代码mapdataobjectstatusupdatecol
2条回答

您需要^{}通过str[1]选择第二个列表:

csv_file['UpdatedMeasurement'] = csv_file['Measurement'].str.split('_', 1).str[1]
print (csv_file)
               Measurement   UpdatedMeasurement
0         COL_TOOL_QUALITY         TOOL_QUALITY
1          COL_COMM_STATUS          COMM_STATUS
2  COL_SEN_FW_HRTBT_STATUS  SEN_FW_HRTBT_STATUS
3  COL_WNL_FW_HRTBT_STATUS  WNL_FW_HRTBT_STATUS
4         COL_COMM_STATUS2         COMM_STATUS2

如果要使用自定义函数(如果NaNs失败),请使用^{}^{}

def update_measure(data):
    return data.split('_', 1)[1]

csv_file['UpdatedMeasurement'] = csv_file['Measurement'].apply(update_measure)
#alternative solution 
#csv_file['UpdatedMeasurement'] = csv_file['Measurement'].apply(update_measure)
#list comprehension solution
#csv_file['UpdatedMeasurement'] = [data.split('_', 1)[1] for data in csv_file['Measurement']]

内置函数mapPython 3中返回一个iterator,这就是您在这里观察到的对象。这在处理大量数据时有一些优势,因为它将按需处理每个项目,并且不会在只有少数结果感兴趣时构建所有结果的列表。一个相关的效果是,如果您有更多的处理层,它将更好地使用缓存。在python2中,map返回了list,迭代器版本被称为itertools.imap。由于这种变化,一些以前显示结果的代码可能只显示迭代器对象;复制完整结果的简单方法是应用list()

相关问题 更多 >

    热门问题