如何更改.csv文件的所有样本中的特定元素?

Rog*_*ite -5 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
674BCF0CD236621E5680073334A73C32, -98, 01-02-2015
50D8BF0DA22D6C914777D8F59DAAB4D8, -17, 01-02-2015
Run Code Online (Sandbox Code Playgroud)

我想识别所有类似的“哈希”代码,并将其更改为诸如“ user1”,“ user2”,“ user3”等标签。

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

Max*_*axU 5

首先将CSV读入Pandas DF:

df = pd.read_csv('/path/to/file.csv', skipinitialspace=True)
Run Code Online (Sandbox Code Playgroud)

产量:

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
Run Code Online (Sandbox Code Playgroud)

现在我们可以分解user列:

In [85]: df['user'] = 'user' + pd.Series((pd.factorize(df.user)[0]+1).astype(str))

In [86]: df
Out[86]:
    user  withdraw        date
0  user1      -125  01-02-2015
1  user2        -5  01-02-2015
2  user3      -845  01-02-2015
3  user1      -250  01-02-2015
4  user2       -98  01-02-2015
5  user1       -17  01-02-2015
Run Code Online (Sandbox Code Playgroud)

并将DF写回csv:

df.to_csv('/path/to/file_new.csv', index=False)
Run Code Online (Sandbox Code Playgroud)