How to add pandas data to an existing csv file?

StackOverflow

I want to know if it is possible to use the pandas to_csv() function to add a dataframe to an existing csv file. The csv file has the same structure as the loaded data.

Answer rating: 752

You can specify a python write mode in the pandas to_csv function. For append it is "a".

In your case:

df.to_csv("my_csv.csv", mode="a", header=False)

The default mode is "w".

Answer rating: 268

You can append to a csv by opening the file in append mode:

with open("my_csv.csv", "a") as f:
    df.to_csv(f, header=False)

If this was your csv, foo.csv:

,A,B,C
0,1,2,3
1,4,5,6

If you read that and then append, for example, df + 6:

In [1]: df = pd.read_csv("foo.csv", index_col=0)

In [2]: df
Out[2]:
   A  B  C
0  1  2  3
1  4  5  6

In [3]: df + 6
Out[3]:
    A   B   C
0   7   8   9
1  10  11  12

In [4]: with open("foo.csv", "a") as f:
             (df + 6).to_csv(f, header=False)

foo.csv becomes:

,A,B,C
0,1,2,3
1,4,5,6
0,7,8,9
1,10,11,12

Answer rating: 89

with open(filename, "a") as f:
    df.to_csv(f, header=f.tell()==0)
  • Create file unless exists, otherwise append
  • Add header if file is being created, otherwise skip it




Get Solution for free from DataCamp guru