2017-10-09

【Python】Pandasチュートリアル - CSVの読み書き:データの表示・追加・編集・削除を行う -

PythonのPandasを利用して、CSVの読み込みや、データの追加・削除・編集などを行い、CSVの書き込みまでできる方法を解説します。また、特に頻出のメソッドと、そのメソッドの説明についてもやっていきたいと思います。


目次



  • Pandasが扱うオブジェクトとは? Dataframe型とSeries型の違い
  • データフレームを作成する
  • データシリーズを作成する
  • データフレームにデータシリーズを代入する
  • CSVデータを読み込む
  • データを眺める
  • 条件が合致するデータを取得データを消去する
  • 列を並び替える
  • データをコピーする(バックアップ用)
  • 特定の行の値を含む行を検索する
  • 特定の列の順番をつける
  • データのクリーニング






Pandasが扱うオブジェクトとは? Dataframe型とSeries型の違い



Pandasが扱うオブジェクトには、シリーズ(Series)型と、データフレーム(Data Frame)型とよばれる型があります。Series型は1元配列を扱います。データフレームは2元配列を取り扱う型となります。


データフレームを作成する

列名を代入します。

import pandas as pd
df = pd.DataFrame(columns=['username', 'gender','age', 'income'])
df

Out[12]:
username gender age income


データシリーズを作成する

次に、各行を追加します。

username = "Taro"
gender = "male"
age = 32
income = 500
se = pandas.Series([username,gender,age,income],["username","gender", "age","income"])
se


username    Taro
gender      male
age           32
income       500
dtype: object



データフレームにデータシリーズを代入する


データフレームに、シリーズ型の値を代入します。

#データフレームにSeriesの値を代入
df = df.append(se, ignore_index=True)
df


Out[18]:
username gender age income
0 Taro male 32.0 500.0


もう一度行を追加します。

#再度データを挿入
username = "Alice"
gender = "female"
age = 22
income = 200
se = pandas.Series([username,gender,age,income],["username","gender", "age","income"])
df = df.append(se, ignore_index=True)
df


username gender age income
0 Taro male 32.0 500.0
1 Alice female 22.0 200.0


CSVデータを読み込む


users.csvに以下のようなデータが入力されているとします。このCSVデータを読み込みます。




#CSVデータを読む
csvData = pd.read_csv("users.csv")
csvData


Unnamed: 0 username gender age income
0 0 Taro male 32 500
1 1 Alice female 22 200



データを眺める


python.head(50) #最初の50個を取得

条件が合致するデータを取得


df = df[df[income] > 300]
df

データを消去する


df = df.drop(["Unnamed: 0"], axis = 1)

列を並び替える


df2 = df2[['gender', 'income', 'age','username']] #A,B,C,D,E順に並び替える

データをコピーする(バックアップ用)


df2 = df.copy()


特定の行の値を含む行を検索する


python2017 = python[python["date"].str.contains("2017/", na=False)]

特定の列の順番をつける


python2017.sort_values(by=["bookmarks"], ascending=False)

CSVに書き込む


df.to_csv("new.csv")


データのクリーニング


df2['amount'] = df2['amount'].str.replace(',', '') #特定の列の一文字を置き換える
df.dtypes #データの型の確認
df['Amount'] = pd.to_numeric(df['Amount']) #文字列を数値リテラルに変換
df.dtypes
#incomeの、最初の万から先を削除する
data["income"] = data["income"].str.split("万").str[0]
df.duplicated().any() #データに重複があるかチェックする
data["workers"] = pd.to_numeric(data["workers"]) #データの整数値か
df.drop_duplicates(['x', 'y']) #重複データの削除


>Python データ分析入門マニュアルへ戻る

Python データ分析入門マニュアル - 実例を使ってWebスクレイピングからデータビジュアライゼーションまでやってみよう -

Python データ分析入門マニュアル Webスクレイピングからデータビジュアライゼーションを、プログラミングを学んだことのない人向けに0から解説するマニュアルです。何から学ぶべきか、環境構築はどうするかからはじまって、Webスクレイピング、データの前処理、そしてデータビジュアライゼーションまでを丁寧に解説します。 ...




注目の投稿

 PythonのTweepyを利用して、Twitter APIを利用している。 その中で、ハマったポイントをメモしておく。 まず、Searchに関して。 Twitter検索は、クライアントアプリ側では、全期間の検索が可能になっている。 一方で、APIを利用する際は、過去1週間しか...