试图打印映射数据,但函数没有返回任何内容

时间:2017-10-23 05:16:43

标签: python numpy mapreduce mapper

import numpy as np
with open("/Users/myname/Downloads/names/yob1880.txt","r") as f:
    text = f.readlines()
for line in text:
    print (line)
def mapper():
    for lines in line:
        data = line.strip().split("\t")
        name, sex, number = data
        print ("{0}\t{1}".format(name, number))

数据集具有逗号分隔的名称,性别和数字值。数据集取自此处:https://www.ssa.gov/oact/babynames/names.zip

enter image description here

2 个答案:

答案 0 :(得分:0)

我认为,而不是

lines

您实际应该使用单行(在您的情况下称为for line in text: data = line.strip().split(',') 或重写您的变量)。

因此,请在这里考虑一下:

lines

你看到了区别吗? linesplit(',')

此外,阅读评论和提供的文件,您应该{{1}}。

或者甚至更好,使用csv阅读器附带的csv模块。

答案 1 :(得分:0)

试试这个:

import numpy as np
import csv

with open("/Users/myname/Downloads/names/yob1880.txt","r") as f:
    csv_file = csv.reader(f)
    def mapper():
        for line in csv_file:
            name, sex, number = line
            print ("{0}\t{1}".format(name, number))
    mapper()

csv模块有很多帮助。