잔 프로 - 제6회 ~.csv를 python으로 편집~

4600 단어 pandas파이썬

간단한 흐름



1.pandas.read_csv에서 csv 파일을 일괄로드
2. itertuples 메소드로 얻은 반복자를 for 문으로 돌려 한 줄씩 분석
3.요소의 갱신에는 at 또는 iat를 이용해 개별적으로 조작(replace등을 사용하면 정리해의 갱신이 가능)
4.to_csv로 쓰기

샘플.py



함수로 구현하면 다음과 같습니다.
import pandas as pd

def csvEdit(path_csv):
    csv = pd.read_csv(path_csv)
    for row in csv.itertuples():
        csv.at[row[0], 'hoge'] = huga
    csv.to_csv(path_csv)

조금 itertuples에 대해 설명합니다. row에 저장되는 튜플이지만, 이것에는 선두에 index명, 그리고 그 행의 데이터가 포함되어 있습니다. row는 단순한 카피이므로 대입 등의 요소 조작은 원 데이터인 csv에 가 주세요.
또한 csv 파일의 형태에 따라 iterrows 메서드를 사용하는 것이 좋습니다. 인덱스를 명기하고 있는 경우나 특별히 취급할 필요가 있는 경우군요.

실행 예



방금 전의 함수내에 print를 더해 실행해 보겠습니다. encoding, index의 지정도 해 둡니다.

실행 전


sample.py
import pandas as pd

def csvEdit(path_csv):
    csv = pd.read_csv(path_csv, encoding='utf-8')
    for row in csv.itertuples():
        csv.at[row[0], 'weight'] -= 5
        print(row)
    csv.to_csv(path_csv, encoding='utf-8', index=False)

if __name__ == '__main__':
    _ = csvEdit("sample.csv")


terminal
Pandas(Index=0, name='marcello', height=183, weight=80, other=nan)
Pandas(Index=1, name='david', height=190, weight=80, other=9.0)
Pandas(Index=2, name='lilian', height=185, weight=79, other=nan)
Pandas(Index=3, name='paolo', height=179, weight=74, other=nan)

실행 후


모두 5kg의 체중 감소에 성공했습니다!

다음 번 - 제 7 회에서는 ...



행당 데이터 수를 늘립니다. deadline에 세세하게 시간까지 설정할 수 있도록 하거나 습관의 경우는 요일 지정을 할 수 있도록 할 예정입니다.

좋은 웹페이지 즐겨찾기