python pandas DataFrame 要点 &dfgui GUIビューワー良いわこれ

 summary ob pandas.DataFrame

dfguiモジュールはインストールが面倒

# GIT.EXE をインストール https://git-scm.com/download/win
# pip install git+https://github.com/bluenote10/PandasDataFrameGUI
# pip install wxpython

 

 

mport pandas as pd
import numpy as np
import dfgui
#https://pythondatascience.plavox.info/
#Numpy の 行列からデータフレームを作成する
matrix = np.random.randn(6,4)
df = pd.DataFrame(matrix, columns=list('ABCD'))

#ディクショナリからデータフレームを作成する
my_df = pd.DataFrame.from_dict(my_dict)

#先頭,末尾 N 行を表示する
df.head(N)
df.tail(N)

#基本統計量を算出する
#件数 (count)、平均値 (mean)、標準偏差 (std)、最小値(min)、第一四分位数 (25%)、中央値 (50%)、第三四分位数 (75%)、最大値 (max
df.describe()

#各列の型を確認する
df.dtypes

#列名を表示する
df.columns

#行名 (index) を表示する
df.index

#列名、行名を除いた値のみの2 次元行列として表示する
df.values

#特定の列を取得する(2種類とも同じ)
df['A']
df.A

#指定した区間の行を抽出する
df[1:3]#1~3row
df['20200102':'20200104']#indexで指定

#loc アトリビュートを使って特定の行・列を抽出する
df.loc["2013-01-01"]

## 行名 = "20130102" ~ "20130104" の "A" 列と "B" 列を取得
df.loc['20130102':'20130104',['A','B']]
## 行名 = "20130102" の "A" 列と "B" 列を取得
df.loc['20130102',['A','B']]

#行や列の位置を指定して行・列を取得する
## 3 行目を取得
df.iloc[3]
## 1,2,4 行目と 0-2 列目を取得
df.iloc[[1,2,4],[0,2]]
## 1-3 行目と全ての列を取得
df.iloc[1:3,:]
## 全ての行と 1-3 列目を取得
df.iloc[:,1:3]

#条件を指定して行・列を取得する(条件式)
## "A" 列の値が 0 より大きい行を取得
df[df.A > 0]
## 値が 0 より大きい値のみを取得
df[df > 0]

# "E" 列に "one" または "two" を値に持つ行(isin())
df[df['E'].isin(['one','two'])]


#データフレーム df と df2 を結合
df.append(df2,ignore_index=True)#新たな行番号を割り当てる

#列 (カラム) を追加する
## 列 "job" を追加
df['job'] = ["Engineer", "Sales"]
## 列 "age" を追加 (Numpy Array を追加)
df['age'] = np.array([35, 25])

#特定の行・列を削除する(drop())
##特定の行を削除する
df.drop([3,4])
##特定の列を削除する(axis=1 を指定し、列の削除であることを指定)
df.drop("A", axis=1)

#Python の del ステートメント
##列 A を削除
del df['A']

#行の長さを確認する
len(df.index)
#列の長さを確認する
len(df.columns)
#行と列の長さを確認する
df.shape

#行⇔列を転置する (T=Transpose) 
df.T

#インデックス (行名・列名) に基づいてソートする
## 行名に基づいてソート
df.sort_index(ascending=False)

## カラム名 (列名) に基づいてソート
df.sort_index(axis=1, ascending=False)

#値に基づいてソートする
## B 列の値の小さい順 (昇順) にソート
df.sort_values(by='B') 
# C 列の値の大きい順 (降順) にソート
df.sort_values(by='C', ascending=False)

#Pandas でデータフレームの結合 (マージ, JOIN)
df.merge(left, right, how='inner', on=None, left_on=None, right_on=None,
      left_index=False, right_index=False, sort=True,
      suffixes=('_x', '_y'), copy=True, indicator=False)

#2 つのデータフレームを縦方向に結合する (concat)
pd.concat([df1, df2], ignore_index=True)

#Pandas で CSV ファイルやテキストファイルを読み込む
df=pd.read_csv(filepath_or_buffer, header='infer',encoding='utf-8')

#Pandas のデータフレームを CSV ファイルやテキストファイルに出力する
df.to_csv(path_or_buf=None, columns=None, header=True,  index=True, 
    index_label=None, mode='w', encoding=None,line_terminator='\n')

 

pandasのデバッッグの友dfgui.show()

pandasがわかりにくいのはデータが見えないからだ

あーエクセルは良いわ~ って思うよね。

そこで

import dfgui

dfgui.show(df) #de=DataFrameオブジェクト

エクセルのビューワーという感じです

データを読み込んだり加工したりする度、これでデータをチェックします。

dfgui.show(dfオブジェクト名)

これだけですから。

 

コメント

amazon 本日の在庫処分 Time Sale
現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 動画290本28.5時間 \24,000(実購入は\1,890でした)
携帯2台持ちを1円で解決 早くしとけばよかった。
コロナ感染施設の人体に無害な消毒と抗菌処理ならESS消毒社(東京都)
タイトルとURLをコピーしました