如何用Python为CSV每行第2至23列添加列序号后缀
解决方法
嘿,这个需求很容易实现,我们只需要在读取每行数据的时候,对索引1到22的元素附加对应的索引值作为后缀就可以了。这里给你修改后的完整代码:
import csv datas = [] with open('C:/Users/xxx/Desktop/input/mushrooms.csv', 'r') as csvfile: spamreader = csv.reader(csvfile) for row in spamreader: # 保留第一个元素,对后面的元素添加索引后缀(从1开始计数) processed_row = [row[0]] + [f"{element}{index}" for index, element in enumerate(row[1:], start=1)] datas.append(processed_row) # 打印处理后的第一行验证效果 print(datas[0])
代码细节解释:
enumerate(row[1:], start=1):从原行的第二个元素(索引1)开始遍历,同时让枚举的索引从1起步,这样刚好匹配你需要的后缀数字(比如第一个要修改的元素对应后缀1,第二个对应2,直到第22个元素对应后缀22)。f"{element}{index}":用Python的f-string语法快速把元素和对应索引拼接,完成后缀添加。- 最后将处理好的行存入
datas列表,就得到了你想要的嵌套列表结构。
测试后,原第一行:
['p', 'x', 's', 'n', 't', 'p', 'f', 'c', 'n', 'k', 'e', 'e', 's', 's', 'w', 'w', 'p', 'w', 'o', 'p', 'k', 's', 'u']
会变成:
['p', 'x1', 's2', 'n3', 't4', 'p5', 'f6', 'c7', 'n8', 'k9', 'e10', 'e11', 's12', 's13', 'w14', 'w15', 'p16', 'w17', 'o18', 'p19', 'k20', 's21', 'u22']
完全符合你的需求哦~
内容的提问来源于stack exchange,提问作者Peter MacLeish
相关产品推荐
相关产品推荐

