파이썬에서 제공하는 기본 csv 라이브러리보다 pandas를 이용하면 데이터를 효율적으로 다룰 수 있게 된다.
pip를 이용해서 pandas를 설치하자.
$ pip install pandas
output.csv 파일은 아래와 같이 데이터가 입력되어 있다.
pandas를 이용해서 csv 파일을 읽은 후 데이터를 추가하고 다른 이름의 csv 파일로 저장해 보자.
import pandas
# read csv file
df = pandas.read_csv('output.csv', names=['id', 'name', 'age']) # df is pandas.DataFrame
print("##### data #####")
print(df)
'''
##### data #####
id name age
0 1 홍길동 27
1 2 임꺽정 33
2 3 장보고 38
'''
print("##### df.loc[0:1] #####")
print(df.loc[0:1])
'''
##### df.loc[0:1] #####
id name age
0 1 홍길동 27
1 2 임꺽정 33
'''
print("##### df.loc[:, 'name':'age'] #####")
print(df.loc[:, 'name':'age'])
'''
##### df.loc[:, 'name':'age'] #####
name age
0 홍길동 27
1 임꺽정 33
2 장보고 38
'''
print("##### df.loc[[0, 2], 'name':'age'] #####")
print(df.loc[[0, 2], 'name':'age'])
'''
##### df.loc[[0, 2], 'name':'age'] #####
name age
0 홍길동 27
2 장보고 38
'''
print("##### df.loc[:, 'name'] #####")
print(df.loc[:, 'name'])
'''
##### df.loc[:, 'name'] #####
0 홍길동
1 임꺽정
2 장보고
'''
# final_df = df.append({'id': 4, 'name': '마루치', 'age': 14}, ignore_index=True) # 아래 두 줄과 동일한 결과를 가짐
new_df = pandas.DataFrame([{'id': 4, 'name': '마루치', 'age': 12}])
final_df = pandas.concat([df, new_df], ignore_index=True)
print(final_df)
'''
age id name
0 27 1 홍길동
1 33 2 임꺽정
2 38 3 장보고
3 12 4 마루치
'''
# write csv file
final_df.to_csv('new_output.csv', index=False, header=False, columns=['id', 'name', 'age'])