使用Python在CSV文件中添加一列

2024-04-25 12:23:43 发布

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

  1. 我试图在现有的CSV文件名中插入一列作为测试.csv,列号E
  2. 如果列E已经被占用,我需要将该列右移并插入新的。你知道吗
  3. 列标题应为天,列应填写当前日期

Cunnernt数据

姓名年龄地点学校 亚当12 abc xyz 伊芙14 abc xyz 乔伊12 abc xyz

需要退出吗

Name    Age     location    school  Day
Adam    12      abc         xyz     =today()
eve     14      abc         xyz     =today()
Joy     12      abc         xyz     =today()

我通常会有2000排

我尝试了以下对我不起作用的代码

import csv
Path = 'C:\\Users\\saquib.khan\\Desktop\\Profile_All\\Demo\\New'
infilename = Path + '\\Test.csv'
outfilename = Path + '\\Out1.csv'

 with open(infilename, 'rb') as fp_in, open(outfilename, 'wb') as fp_out:
 reader = csv.reader(fp_in, delimiter=",")
 writer = csv.writer(fp_out, delimiter=",")

 headers = next(reader)  # read title row

 headers[E:E] = ['New Label']

 writer.writerow(headers)

 for row in reader:
 row[E:E] = [0]
 writer.writerow(row)

Tags: csvpathinnewtodayopenreaderwriter
3条回答

您正在以b模式(bytes而不是text模式)打开这2个文件。 你这样做有什么原因吗?你知道吗

你试过用文本模式打开它们吗?你知道吗

with open(infilename, 'r') as fp_in, open(outfilename, 'w') as fp_out:

在这种情况下有效吗?你知道吗

你可以试试这个:

import csv

Path = 'C:\\Users\\saquib.khan\\Desktop\\Profile_All\\Demo\\New'
infilename = Path + '\\Test.csv'
outfilename = Path + '\\Out1.csv'

with open(infilename, 'rb') as fp_in, open(outfilename, 'wb') as fp_out:
    reader = csv.reader(fp_in, delimiter=",")
    writer = csv.writer(fp_out, delimiter=",")

    headers = next(reader)  # read title row

    idx = ord('E') - ord('A')
    headers[idx:idx] = ['New Label']

    writer.writerow(headers)

    for row in reader:
        row[idx:idx] = [0]
        writer.writerow(row)

将列名转换为列索引以使用Python列表进行操作。你知道吗

添加日期

now = datetime.datetime.now()
now -= datetime.timedelta(days=1)
dt = now.strftime("%m/%d/20%y")

 F = 'in.csv'
df = pd.read_csv(Path1 + F)
df["Day"]=df.shape[0]*[dt]
df.to_csv(Path +"out.csv")

相关问题 更多 >