Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何更改.csv文件所有示例中的特定元素?_Python_Csv_Pandas - Fatal编程技术网

Python 如何更改.csv文件所有示例中的特定元素?

Python 如何更改.csv文件所有示例中的特定元素?,python,csv,pandas,Python,Csv,Pandas,作为输入,我有一个.csv文件,如: user, withdraw, date 50D8BF0DA22D6C914777D8F59DAAB4D8, -125, 01-02-2015 674BCF0CD236621E5680073334A73C32, -5, 01-02-2015 E17E1691D35FB2FB675E3B787B8BEDF1, -845, 01-02-2015 50D8BF0DA22D6C914777D8F59DAAB4D8, -250, 01-02-2015 674BCF0C

作为输入,我有一个.csv文件,如:

user, withdraw, date
50D8BF0DA22D6C914777D8F59DAAB4D8, -125, 01-02-2015
674BCF0CD236621E5680073334A73C32, -5, 01-02-2015
E17E1691D35FB2FB675E3B787B8BEDF1, -845, 01-02-2015
50D8BF0DA22D6C914777D8F59DAAB4D8, -250, 01-02-2015
674BCF0CD236621E5680073334A73C32, -98, 01-02-2015
50D8BF0DA22D6C914777D8F59DAAB4D8, -17, 01-02-2015
我想识别所有类似的“散列”代码,并将它们更改为标签,如“user1”、“user2”、“user3”……等等


我一直在尝试这样做,但在熊猫身上没有成功。知道我能做些什么吗?

首先将CSV读入以下内容:

df = pd.read_csv('/path/to/file.csv', skipinitialspace=True)
收益率:

In [84]: df
Out[84]:
                               user  withdraw        date
0  50D8BF0DA22D6C914777D8F59DAAB4D8      -125  01-02-2015
1  674BCF0CD236621E5680073334A73C32        -5  01-02-2015
2  E17E1691D35FB2FB675E3B787B8BEDF1      -845  01-02-2015
3  50D8BF0DA22D6C914777D8F59DAAB4D8      -250  01-02-2015
4  674BCF0CD236621E5680073334A73C32       -98  01-02-2015
5  50D8BF0DA22D6C914777D8F59DAAB4D8       -17  01-02-2015
现在我们可以分解用户列:

并将DF写回csv:

df.to_csv('/path/to/file_new.csv', index=False)

您首先需要按如下方式构建用户词典:

import csv

hashes = {}
user_number = 1
entries = []

with open('input.csv', 'rb') as f_input:
    csv_input = csv.reader(f_input, skipinitialspace=True)
    header = next(csv_input)

    for row in csv_input:
        user = row[0]

        if user not in hashes:
            hashes[user] = "user{}".format(user_number)
            user_number += 1

        row[0] = hashes[user]
        entries.append(row)

with open('output.csv', 'wb') as f_output:
    csv_output = csv.writer(f_output)
    csv_output.writerow(header)
    csv_output.writerows(entries)
为您提供一个output.csv,其中包含:

user,withdraw,date
user1,-125,01-02-2015
user2,-5,01-02-2015
user3,-845,01-02-2015
user1,-250,01-02-2015
user2,-98,01-02-2015
user1,-17,01-02-2015

我不相信你能更新。而是读取、修改和替换://docs.python.org/3/library/csv.html和https://stackoverflow.com/questions/16020858/inline-csv-file-editing-with-pythonThanks对于support@DavyM,我不知道人们为什么投票反对它。无论如何,回答你的问题,我想更改.csv,或者生成一个新的。说真的,有什么线索说明人们为什么讨厌我的帖子吗?=/。我真的很想知道我做错了什么。还有,我应该删除它吗?非常感谢!!工作得很好。@Rogerameidalete,很高兴我能帮上忙:
user,withdraw,date
user1,-125,01-02-2015
user2,-5,01-02-2015
user3,-845,01-02-2015
user1,-250,01-02-2015
user2,-98,01-02-2015
user1,-17,01-02-2015