Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.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 我可以使用pandas模块删除csv文件中的记录吗?_Python_Pandas_Csv - Fatal编程技术网

Python 我可以使用pandas模块删除csv文件中的记录吗?

Python 我可以使用pandas模块删除csv文件中的记录吗?,python,pandas,csv,Python,Pandas,Csv,我正在进行一个项目,该项目将添加、查看和删除csv文件夹中的文件。 对于删除,我创建了一个新列表,没有我想要删除的记录。但删除后,当我添加新记录并查看所有记录时,删除的记录也会出现。我的一位朋友说,使用熊猫模块将非常有用。我想知道熊猫模块是否能达到这个目的。我们欢迎所有其他解决这个问题的建议。这是我目前的代码: exp=[] def expenses(): fr=open("daily.csv",'a',newline="") d=csv.

我正在进行一个项目,该项目将添加、查看和删除csv文件夹中的文件。 对于删除,我创建了一个新列表,没有我想要删除的记录。但删除后,当我添加新记录并查看所有记录时,删除的记录也会出现。我的一位朋友说,使用熊猫模块将非常有用。我想知道熊猫模块是否能达到这个目的。我们欢迎所有其他解决这个问题的建议。这是我目前的代码:

exp=[]
def expenses():
    fr=open("daily.csv",'a',newline="")
    d=csv.writer(fr)
    #d.writerow(['SNO','CATEGORY','AMOUNT','DATE'])
    #exp=[]
    i=len(exp)+1
    while True:
        while True:
            amt=int(input("\nENTER THE AMOUNT "))
            date=input("ENTER DATE (DD/MM/YYYY):")
            ch=int(input("CHOOSE YOUR CATEGORY OF DAILY EXPENSE :\n1.GROCERY\t\t2.HOUSING\n3.TRANSPORT\t\t4.HEALTH\n5.ENTERTAINMENT\t\t6.OTHERS"))
            a=0
            if ch==1:
                c="GROCERY"
                a=1
            elif ch==2:
                c="HOUSING"
                a=1
            elif ch==3:
                c="TRANSPORT"
                a=1
            elif ch==4:
                c="HEALTH"
                a=1
            elif ch==5:
                c="ENTERTAINMENT"
                a=1
            elif ch==6:
                c="OTHERS"
                a=1
            else:
                print("\nINVALID CATEGORY!\nTRY AGAIN!")
                break   
            data=[i,c,amt,date]
            exp.append(data)
            i+=1
            ch3=input("\nDO YOU WANT TO ADD MORE EXPENSES?(Y/N)")
            if ch3.lower()=='n':
                break
        break
    global e
    e=exp
    fr.truncate(0)
    for i in exp:
        d.writerow(i)
    fr.close()
def display():
    if os.path.exists("daily.csv")==True:
        fr=open("daily.csv",'r')
        dr=csv.reader(fr)
        time.sleep(0.5)
        print("\t\t\t\t\t\t***********************************************************************")
        print("\n\t\t\t\t\t\t\t\tYOUR EXPENSES")
        print("\t\t\t\t\t\t***********************************************************************")
        print("\t\t\t\tSNO\t\tCATEGORY\t\tAMOUNT\t\tDATE")
        print("\t\t\t\t---\t\t--------\t\t------\t\t----")
        try:
            for i in dr:
                  print("\t\t\t\t",i[0],"\t\t",i[1],"\t\t",i[2],"\t\t",i[3])
            fr.close()
        except:
            pass
    else:
        print("PLEASE ADD EXPENSES FIRST!")
def delexp():
    while True:
        ch=int(input("CHOOSE THE METHOD OF DELETION:\n1.DELETE EXPENSES BY DATE \n2.DELETE EXPENSES BY CATEGORY\n3.DELETE EXPENSE BY AMOUNT\n4.DELETE INDIVIDUAL EXPENSES"))
        if ch==1:
          dd=input("ENTER THE DATE(dd/mm/yyyy) TO BE DELETED:") 
          f=open("daily.csv",'r')
          dr=csv.reader(f)
          s=[]
          i=1
          for a in dr:
              if a[3]!=dd:
                  b=[i,a[1],a[2],a[3]]
                  s.append(b)
                  i+=1
              else:
                  print("DELETED EXPENSE:",a)
                  print("EXPENSE HAS BEEN DELETED")
          f.close()
          #exp=s
          f=open("daily.csv",'w')
          wr=csv.writer(f)
          for i in s:
             wr.writerow(i)
          f.close()
        elif ch==2:
          dd=input("ENTER THE AMOUNT TO BE DELETED:") 
          f=open("daily.csv",'r')
          f.seek(0)
          s=[]
          dr=csv.reader(f,delimiter=",")
          for a in dr:
              if a[2]!=dd:
                  s.append(a)
              else:
                  print("DELETED EXPENSE:",a)
                  print("EXPENSE HAS BEEN DELETED")
          f.close()
          f=open("daily.csv",'w',newline='')
          wr=csv.writer(f,delimiter=",")
          for a in s:
              wr.writerow(a)

          f.close()

        elif ch==3:
          dd=input("ENTER THE CATEGORY TO BE DELETED:") 
          f=open("daily.csv",'r')
          f=open("daily.csv",'w',newline='')
          wr=csv.writer(f,delimiter=",")
          for a in s:
              wr.writerow(a)
          f.close()
        
        ch1=input("DO YOU WANT TO DELETE AGAIN[Y/N]:")
        
        if ch1.lower()=='n':
            break
然后根据用户的意愿调用这些函数。 谢谢大家!