2017-11-01 8 views
1

私は新しいデータフレームを、既存のCSVに追加する方法を教えてください。pandasを使用してcsvに新しいデータフレーム行を追加する方法は?

私は、次のコードを試してみました:

f = open('test.csv', 'w') 
df.to_csv(f, sep='\t') 
f.close() 

をしかし、それはのtest.CSVには何も追加されません。 CSVは大きく、CSV全体をデータフレームとして読み込み、それを連結して新しいCSVに書き込むのではなく、追加を使用するだけです。問題を解決する良い方法はありますか?ありがとう。

答えて

3

はこれを試してみてください:

df.to_csv('test.csv', sep='\t', header=None, mode='a') 
# NOTE:        -----> ^^^^^^^^ 
+0

@HavenShi、喜んでそれが役立ちます:) – MaxU

+0

それはとても良いことです。ありがとうMaxU! –

+0

それはcsvにそれを追加した後、私の前の行の1つがAAA sunday 200であると言うと、各行が単一のセルに変わるようですが、それを修正するにはどのように 'AAAsunday200'のようにすべてのコンテンツをまとめたセルがありますか? –

0

は、次のコードを試してみてください、それは古いファイル(10行)と、ローカルフォルダに新しいファイル(2行)を生成します。私が追加した後、新しいコンテンツがすべてのアップミックス:それはに来る

import pandas as pd 
import os 

dir_path = os.path.dirname(os.path.realpath("__file__")) 
print(dir_path) 

raw_data = {'HOUR': [4, 9, 12, 7, 3, 15, 2, 16, 3, 21], 
     'LOCATION': ['CA', 'HI', 'CA', 'IN', 'MA', 'OH', 'OH', 'MN', 'NV', 'NJ'], 
     'TYPE': ['OLD', 'OLD', 'OLD', 'OLD', 'OLD', 'OLD', 'OLD', 'OLD', 'OLD', 'OLD'], 
     'PRICE': [4, 24, 31, 2, 3, 25, 94, 57, 62, 70]} 
old_file = pd.DataFrame(raw_data, columns = ['HOUR', 'LOCATION', 'TYPE', 'PRICE']) 
old_file.to_csv(dir_path+"/old_file.csv",index=False) 


raw_data = {'HOUR': [2, 22], 
     'LOCATION': ['CA', 'MN'], 
     'TYPE': ['NEW', 'NEW'], 
     'PRICE': [80, 90]} 
new_file = pd.DataFrame(raw_data, columns = ['HOUR', 'LOCATION', 'TYPE', 'PRICE']) 
new_file.to_csv(dir_path+"/new_file.csv",index=False) 


new_file=dir_path+"/new_file.csv" 
df=pd.read_csv(new_file) 
df.to_csv('old_file.csv', sep='\t', header=None, mode='a') 

HOUR LOCATION TYPE PRICE 
4 CA OLD 4 
9 HI OLD 24 
12 CA OLD 31 
7 IN OLD 2 
3 MA OLD 3 
15 OH OLD 25 
2 OH OLD 94 
16 MN OLD 57 
3 NV OLD 62 
21 NJ OLD 70 
02CANEW80   
122MNNEW90 
+0

'df.to_csv( 'old_file.csv'、header = None、mode = 'a')'はトリックを行うべきです – MaxU

関連する問題