Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

Pandas Python

PythonでPandasライブラリを用いてcsvファイルを読み込む方法

投稿日:

<目次>

(1) PythonでPandasライブラリを用いてcsvファイルを読み込む方法
 (1-1) 構文
 (1-2) サンプルプログラム
 (1-3) read_csvの主要なオプションご紹介
 (1-4) 読み込んだcsvのカラム名やレコードを取得する方法

(1) PythonでPandasライブラリを用いてcsvファイルを読み込む方法

(1-1) 構文

1行目でpandasのライブラリをインポートし、2行目の「pd.read_csv()」でcsvを読み込んでいます。
read_csvの第一引数は読み込むcsvのパス([FilePath])を指定します。第二引数以降はオプションの指定をカンマ区切りで行います。

import pandas as pd
df = pd.read_csv([FilePath],[Option1],[Option2],[Option3],...)

目次にもどる

(1-2) サンプルプログラム

実際に上記の構文を用いたサンプルプログラムをご紹介します。

(読み込むcsv)
↓このデータは2020年10月23時点での男子テニスシングルスの世界ランキングTop10位までの情報です。今回のデータは読み込み対象のデータがチルダ「~」を区切り文字にしています。

Ranking~Move~Country~Player~Age~Points~TournPlayed
1~-~SRB~Novak Djokovic~33~11740~18
2~-~ESP~Rafael Nadal~34~9850~18
3~-~AUT~Dominic Thiem~27~9125~21
4~-~SUI~Roger Federer~39~6630~16
5~-~GRE~Stefanos Tsitsipas~22~5925~27
6~-~RUS~Daniil Medvedev~24~5890~24
7~-~GER~Alexander Zverev~23~4855~26
8~↑2~RUS~Andrey Rublev~22~3429~25
9~↓1~ARG~Diego Schwartzman~28~3180~24
10~↓1~ITA~Matteo Berrettini~24~3075~21

(サンプルプログラム)
上記のcsvを読み込むサンプルプログラムです。

import pandas as pd

def main():
    # 第一引数=ファイルパス
    # 第二引数=delimiter=区切り文字はチルダ「~」を指定
    df = pd.read_csv(r"C:\Users\Rainbow\Desktop\tennis_ranking_20201023.csv",delimiter="~")
    print(df)

if __name__ == '__main__':
    main()

(図121)プログラム実行結果(例)

目次にもどる

(1-3) read_csvの主要なオプションご紹介

(1-3-1) 主要オプションの概要

read_csvで頻繁に使用する代表的なオプションについて表にまとめました。一部のオプションに関しては(1-3-2)以降で実機の確認画像を貼っているので、必要に応じてご覧頂けたらと思います
(表)

オプション
(=以降はデフォルト値)
備考
sep=’,’ str ・「区切り文字」の指定
・デフォルトはカンマ「,」
encoding str ・エンコーディング方式を指定します。
(例)
encoding = ‘utf-8’
delimiter=None str ・sepの別名
header=’infer’ int
list of int
・カラム名として利用する行の番号(一つor複数)
・デフォルトでは推測(infer)します。
・複数行あるケースは配列で指定も可能(例:[0,1,3])。
names array-like ・使用するカラム名を明示的に宣言する場合に使います。
・この場合は「header」と競合しないよう「header=0」を記載する必要があります。
index_col int, str
sequence of int / str
・行ラベルとして使用する列を指定します。
・複数列を指定したら、マルチインデックスになります。
skiprows int
範囲指定(rangeなど)
・読み込みをSkipする行を指定します。
①特定行の例
skiprows=1
②範囲指定の例:
skiprows=range(1,2000000)

目次にもどる

(1-3-2) オプション「sep」の効果が分かる実例

(図132)sep=”~”によってチルダで区切って表示されています。

(1-3-3) オプション「delimiter」の効果が分かる実例

(図133)delimiter=”~”もsepと同様にチルダで区切った結果を表示しています。

(1-3-4) オプション「header」の効果が分かる実例

(図134)①header「なし」のパターン
1行目にダミーのヘッダー行(Dummy~Dummy~・・・)を差し込んだ場合、header指定なしで読み込むと、当然ながらDummyの1行目がheaderとして表示され、本当のヘッダーである2行目は普通の行データとして表示されている。

(図134)②header「あり」のパターン
header=1(つまり2行目)を指定する事で、Dummyの行を飛ばして2行目をヘッダーとして読み込んでいます。

(1-3-5) オプション「index_col」の効果が分かる実例

(図135)index_col=2(つまり3列目)を指定したので国名が左端にインデックスとして表示されています。

目次にもどる

(1-4) 読み込んだcsvのカラム名やレコードを取得する方法

読み込んだcsvのカラム名やレコードを取得する方法についても、下記の記事で解説しています。
https://rainbow-engine.com/python-csv-fetch-column/

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-Pandas, Python

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

Pythonで画面作成をtkinterで行う方法(入門編)

<目次> (1) Pythonで画面作成をtkinterで行う方法(入門編)  (1-1) tkinterとは?  (1-2) STEP1:tkinterモジュールのインポート  (1-3) STEP …

CondaHTTPError: HTTP 000 CONNECTION FAILED for url XXXXエラーの対処方法

  <目次> (1) CondaHTTPError: HTTP 000 CONNECTION FAILED for url XXXXエラーの対処方法  (1-1) 事象概要とエラーメッセージ …

no image

Pythonでランダムな座標データを生成する方法

  <目次> (1) Pythonでランダムな座標データを生成する方法  (1-1) 使う構文  (1-2) サンプルプログラム  (1-3) 補足:データの座標を全体的にシフトしたい場合 …

PythonのPandas使用時に発生した「UnicodeEncodeError: ‘ascii’ codec can’t encode characters~」エラーの対処方法について

(0)目次&概説 (1) エラー対応1:UnicodeEncodeError  (1-1) 発生状況・エラーメッセージ   (1-1-1) エラーメッセージ   (1-1-2) エラーとなったソース …

no image

PythonでJSON形式データの値を取得する手順について

  <目次> (1) PythonでJSON形式データの値を取得する手順について  (1-1) サンプル①:ローカルのJSONファイルの読み込み(単純構造)  (1-2) サンプル②:ローカ …

  • English (United States)
  • 日本語
Top