I am writing code to insert a new column in a csv file:
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)
When I run the code, no error was given. When I open the csv file, the new row is not added. I decided to check using 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
Using the python shell, I can see the result updated on the shell only. How do I update it in the CSV file as well?
To add a column at a specific position within a table row, use FIRST or AFTER col_name . The default is to add the column last. You can also use FIRST and AFTER in CHANGE or MODIFY operations to reorder columns within a table.
By use + operator simply you can concatenate two or multiple text/string columns in pandas DataFrame. Note that when you apply + operator on numeric columns it actually does addition instead of concatenation.
When you do -
df.insert(2,'new',1000)
It inserts the new
column in the DataFrame df
(with all values 1000) in memory. It does not automatically write it back to the csv.
For changes you did to the dataframe to be written back to csv, you should use DataFrame.to_csv()
method. Example -
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)
Also, you should make sure you define the function before you try to call it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With