更改列中找到的所有字符串的序列号,并将dateTime更改为date

时间:2018-10-27 10:41:43

标签: python

我是python初学者,在执行代码时遇到问题。 我以这种方式编写了代码:在这个程序中,我可以得到一个否定的序列。对于所有专栏,但不想为专栏日期提供数字,我不知道如何实现..请帮助我...

with open("input2.csv", 'r',encoding="utf8") as csvfile: 
            # creating a csv reader object 
            reader = csv.DictReader(csvfile, delimiter=',')


            data = {}
            for row in reader:
    #         print(row)
                for header, value in row.items():
                    try:
                        data[header].append(value)
                    except KeyError:
                        data[header] = [value]

            # Loop through all keys
            for key in data.keys():
                values = data[key]

                things = list(sorted(set(values), key=values.index))

                for i, x in enumerate(data[key]):
                    data[key][i] = things.index(x) + 1
    #                 print(data[key][i])
                    NewData=data[key][i]
                    print(NewData)

            with open("OuputFile.csv", "w") as outfile:
                writer = csv.writer(outfile)
                # Write headers
                writer.writerow(data.keys())
                # Make one row equal to one value from each list
                rows = zip(*data.values())
                # Write rows
                writer.writerows(rows)

已为此输入数据的

 job_Id FirstName   LastName    Address     Email           Date/Time

  1 snehil      singh       marathalli  ss@gmail.com        12/10/2011:02:03:20
  2 salman      khan        marathalli  ss@gmail.com        12/11/2011:03:10:20
  3 Amir        khan        HSR     ar@gmail.com        11/22/2009:09:03:20
  4 Rakhesh     kumar       HSR     rakesh@gmail.com    09/15/2010:02:03:55
  5 Ram     sharma      marathalli  r@gmail.com     01/10/2014:12:03:20
  6 Shyam       shahi       BTM     ss@gmail.com        12/17/2012:01:03:20
  7 salman      khan        HSR     ss@gmail.com        11/08/2016:15:03:20
  8 Amir        khan        BTM     ar@gmail.com        07/10/2013:04:02:30
  9 snehil      singh       Majestic    sne@gmail.com       03/20/2018:02:03:20

在此程序中,我有某些列需要进行以下操作,例如:通过使用lambda函数,将FirstName和LastName列替换为“ Fullname”。 日期/时间列只能打印日期,而不是时间。 完成所有操作后,所有字符串应替换为数字顺序,重复的字符串应打印相同的数字。

输出应如下所示:

job_Id  FullName    Address  Email  Date
    1   1            1         1    12/10/2011
    2   2            1         1    12/11/2011
    3   3            2         2    11/22/2009
    4   4            2         3    09/15/2010  
    5   5            1         4    01/10/2014
    6   6            3         1    12/17/2012
    7   2            2         1    11/08/2016
    8   3            3         2    07/10/2013
    9   1            4         5    03/20/2018

请帮助我找到此输出,任何逻辑都可以。...但不使用Pandas Dataframe

0 个答案:

没有答案