Python - 如何重新索引 CSV 文件中的列

问题描述 投票:0回答:1

我尝试重新索引包含三列的 CSV 文件,其中第一列是字符串(不是整数)。

我希望第一列中的第一行从 1、2、3 等开始。

这是原始 CSV 文件:

count,username,user_id
1200,ZMQ1314,5406865623
1201,Bongtuy,1076568810
1202,Tingcall,1469929831
1203,rithboren47,1503590446
1204,Bongheue,1464987984
... etc.

我想重写一个新的 CSV 文件而不更改第二列和第三列中的任何数据,如下所示:

count,username,user_id
1,ZMQ1314,5406865623
2,Bongtuy,1076568810
3,Tingcall,1469929831
4,rithboren47,1503590446
5,Bongheue,1464987984
... etc.

我尝试了以下代码,但没有成功:

import csv

with open('data-left.csv', 'r') as f1:
    fileone = f1.readlines()

with open('data-left2.csv', 'w', encoding='utf-8') as nf:    # target_userid2.txt or target_userid2.json
    nf.write('count,username,user_id' + '\n')
    count1 = 1
    for item in fileone:
        if item[1] != "None":
            re_indexing = str(count1)
            record = re_indexing + ',' + item[1] + ',' + item[2]
            nf.write(record)
            count1 += 1

非常感谢任何帮助。

csv indexing
1个回答
0
投票

我强烈建议使用

pandas
包来处理电子表格。首先,使用

安装软件包
pip install pandas

安装后,pandas,以下是如何使用它来替换第一列中的值。

df = pd.read_csv(PATH_TO_CSV)
# Create a dictionary from original value to new value.
mapping = {1200: 1, 1201: 2, 1202: 3, 1203: 4, 1204: 5}
df["count"] = df["count"].replace(mapping)
df.to_csv("updated_data.csv", index=False)
© www.soinside.com 2019 - 2024. All rights reserved.