Python-替换CSV文件中的特定值,同时保留其余值

Python-替换CSV文件中的特定值,同时保留其余值,python,csv,Python,Csv,我有一个CSV文件,看起来像这样: Username,Password,Name,DOB,Fav Artist,Fav Genre Den1994,Denis1994,Denis,01/02/1994,Eminem,Pop Joh1997,John1997,John,03/04/1997,Daft Punk,House 我需要能够做的是让用户编辑和更改他们的Fav艺术家和Fav流派,以便将他们的新值保存到文件中以代替旧值。说到CSV,我不是最先进的,所以我不知道从哪里开始,因此任何帮助和指点都

我有一个CSV文件,看起来像这样:

Username,Password,Name,DOB,Fav Artist,Fav Genre
Den1994,Denis1994,Denis,01/02/1994,Eminem,Pop
Joh1997,John1997,John,03/04/1997,Daft Punk,House
我需要能够做的是让用户编辑和更改他们的Fav艺术家和Fav流派,以便将他们的新值保存到文件中以代替旧值。说到CSV,我不是最先进的,所以我不知道从哪里开始,因此任何帮助和指点都将不胜感激

谢谢各位

编辑:

添加到目前为止我所拥有的代码,看起来我并不是在试图找到一些简单的解决方法,通常不确定在这一点之后要做什么:

def editProfile():
    username = globalUsername
    file = open("users.csv", "r")
    for line in file:
        field = line.split(",")
        storedUsername = field[0]
        favArtist = field[4]
        favGenre = field[5]
        if username == storedUsername:
            print("Your current favourite artist is:", favArtist,"\n" + 
                  "Your current favourite genre is:",favGenre,"\n")
            wantNewFavArtist = input("If you want to change your favourite artist type in Y, if not N: ")
            wantNewFavGenre = input("If you want to change your favourite genre type in Y, if not N: ")
            if wantNewFavArtist == "Y":
                newFavArtist = input("Type in your new favourite artist: ")
            if wantNewFavGenre == "Y":
                newFavGenre = input("Type in your new favourite genre: ")
试试这个

import pandas as pd 

data = pd.read_csv("old_file.csv")
data.loc[data.Username=='Den1994',['Fav Artist','Fav Genre']] = ['Beyonce','Hard rock']
data.to_csv('new_file.csv',index=False)

python有一个处理csv的内置模块,文档中有一些示例可以正确地指导您

一种方法是使用csv模块将您拥有的文件放入列表列表中,然后您可以编辑各个列表(行),只需将内存中的文件重写到磁盘即可

祝你好运

PS:在您发布的代码中,没有根据用户输入分配给“内存中的csv”

没有文件处理的最简单示例可能是:

fake = 'abcdefghijkl'
csv = [list(fake[i:i+3]) for i in range(0, len(fake), 3)]
print(csv)

for row in csv:
    if row[0] == 'd':
        row[0] = 'changed'

print(csv)

文件处理很容易从文档中获取,如果在愿望列表中,则可以避免熊猫依赖性

这就是使用

这里
df.loc[]
允许您通过索引访问一行。在这种情况下,
Username
被设置为索引。然后,
[field]
选择该行中的列

也可以这样考虑:

df.loc[globalUsername][['Fav Artist', 'Fav Genre']] = 'Linkin Park', 'Nu Metal'
如果您有一个
my data.csv
文件,您可以将其加载到:

df = pd.read_csv('my-data.csv') 

上面的代码将返回

密码名称DOB Fav艺人Fav流派
用户名
Den1994 Denis1994 Denis 01/02/1994 Eminem Pop
约翰1997年约翰1997年约翰1997年4月3日愚蠢朋克之家

密码名称DOB Fav艺人Fav流派
用户名
Den1994 Denis1994 Denis 01/02/1994林肯公园流行音乐
约翰1997年约翰1997年约翰1997年4月3日愚蠢朋克之家

是否要在不使用代码的情况下执行此操作?从导入csv模块开始。询问“任何帮助”或一般提示是离题的。希望您自己阅读文档并尝试解决方案。如果代码出现错误,没问题,我们会帮助您。看起来您希望我们为您编写一些代码。虽然许多用户愿意为陷入困境的程序员编写代码,但他们通常只在海报已经试图自己解决问题时才提供帮助。演示这项工作的一个好方法是包括您迄今为止编写的代码、示例输入(如果有)、预期输出和实际获得的输出(控制台输出、回溯等)。你提供的细节越多,你可能得到的答案就越多。检查和。不,我想用代码来做,我已经用它做了一些尝试,但不幸的是所有的都失败了,所以我来这里看看你们能想出什么。但我会补充到目前为止我对它的了解
df = pd.read_csv('my-data.csv')