我正在编写代码以在csv文件中插入新列:
import sys,os,csv,glob
dir = os.path.dirname(__file__)
import pandas as pd
updatecsv()
def updatecsv():
files = 'example.cs'
df = pd.read_csv(files)
df = df.convert_objects(convert_numeric=True)
#until here, the code is running fine
#now i wanted to add a new column in a specific index with all value =10
df.insert(2,'new',1000)
Run Code Online (Sandbox Code Playgroud)
当我运行代码时,没有给出错误.当我打开csv文件时,不会添加新行.我决定使用python shell检查:
>>>files = 'example.csv'
>>>df = pd.read_csv(files)
>>>df = df.convert_objects(convert_numeric=True)
>>>df
A B C D
0 1 2 3 4
1 5 6 7 8
2 9 10 11 12
df['new']=13
>>>df
A B C D new
0 1 2 3 4 13
1 5 6 7 8 13
2 9 10 11 12 13
>>>df['new'] = df['new'] +1
>>>df
A B C D new
0 1 2 3 4 14
1 5 6 7 8 14
2 9 10 11 12 14
>>>df.insert(2,'win',22)
>>>df
A B win C D new
0 1 2 22 3 4 14
1 5 6 22 7 8 14
2 9 10 22 11 12 14
Run Code Online (Sandbox Code Playgroud)
使用python shell,我只能在shell上看到更新的结果.如何在CSV文件中更新它?
当你这样做 -
df.insert(2,'new',1000)
Run Code Online (Sandbox Code Playgroud)
它将new
DataFrame中的列df
(所有值为1000)插入内存中.它不会自动将其写回csv.
对于要对要写回csv的数据帧所做的更改,您应该使用DataFrame.to_csv()
方法.示例 -
def updatecsv():
files = 'example.cs'
df = pd.read_csv(files)
df = df.convert_objects(convert_numeric=True)
#until here, the code is running fine
#now i wanted to add a new column in a specific index with all value =10
df.insert(2,'new',1000)
df.to_csv(files)
Run Code Online (Sandbox Code Playgroud)
此外,您应该确保在尝试调用之前定义该函数.