トップ 一覧 検索 ヘルプ RSS ログイン

PRG-PY-pandasの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
! pandas インストール
 pip3 install pandas

! ODS ファイルの読み込み用(tips-Py-ods)
 pip3 install odfpy

!CSV の読み込み
 #!/usr/bin/env python3
 # -*- coding: utf-8 -*-
 
 import pandas as pd 
 
 df_names = pd.read_csv('lds9d1.csv', names=('xa','ya','za', 'xg','yg','zg', 'xm', 'ym', 'zm','ROLL','PITCH','YAW', 'degX','degY','DUM'))
 
 print(df_names)
 # 漢字コードのエラーが出る場合には
 # df_name = pd.read_csv('lds9d1.csv',engine="python",encoding = "shift-jis")
 ## engine="python",encoding = "shift-jis"
 ## を追加してみる

!Excel ファイルの読み込み

 #!/usr/bin/env python3
 # -*- coding: utf-8 -*-
 
 import pandas as pd
 
 # df_names = pd.read_csv('corona-kanjajokyou.csv',names=('n0','n1','n2','n3'))
 df = pd.read_excel('corona-kanjajokyou.xlsx')
 
 print('dataframeの行数・列数の確認==>\n', df.shape)
 print('indexの確認==>\n', df.index)
 print('columnの確認==>\n', df.columns)
 print('dataframeの各列のデータ型を確認==>\n', df.dtypes)
 
 print(df)

! index の指定

 import pandas as pd
 ### df_names = pd.read_csv('lds9d1.csv', names=('xa','ya','za', 'xg','yg','zg', 'xm', 'ym', 'zm','ROLL','PITCH','YAW', 'degX','degY','DUM'))
 df1 = pd.read_csv('./D/30.csv',index_col=0)
 df2 = pd.read_csv('./D/31.csv',index_col=0)
 
 # df1.columns = ['host', 'count', 'byte']
 # df2.columns = ['host', 'count', 'byte']


! 特定の index 行を削除
 df = pd.read_csv('./20210510.csv',index_col=0)
 # index が ltime の行を(全て)削除
 print ( df.drop('ltime', axis=0) )
 ## dp = df.drop('ltime', axis=0) 

! astype(int) のエラー
 # df1['byte']=df1['response_bytes_clf'].astype(int)
 df1['byte']=pd.to_numeric(df1['response_bytes_clf'],errors='coerce')

! 文字列変換
 df['browser_version'].str.split('.').str[0:2].str.join('.')

! print する、行や列を増やす

 pd.set_option('display.max_columns', 100)

 pd.set_option('display.max_rows', 500)


! List を DataFrame に変換
 ## rows :: Python List
 ## ss   :: pd.DataFrame
 ### To pd.DataFrame
 ss = pd.Series(rows)

https://note.nkmk.me/python-pandas-list/

! CVSで読んだ 日時(文字列) を DateTime に
 pd.to_datetime(df['A']
 
 pd.to_datetime(df['B'], format='%Y年%m月%d日 %H時%M分')
 
 df['X'] = pd.to_datetime(df['A'])

小数点付き時刻の変換
 ## df.dtime=pd.to_datetime(df.dtime,format='%Y/%m/%dT%H:%M:%S.%f')
 df["TIME"]=pd.to_datetime(df["Time"],format='%M:%S.%f')

! Tips
https://qiita.com/ysdyt/items/9ccca82fc5b504e7913a

https://qiita.com/koara-local/items/0e56bc1e58b11e4d7a32
! Pandas でグラフ
**https://work-life-enj.com/make_pandas_graph/

! サンプル通帳のコンバージョン

 #!/usr/bin/env python3
 # -*- coding: utf-8 -*-
 """
 CSV 集計
 
 Created on $Date: 2022/03/13 22:44:26 $
 $Revision: 1.6 $
 
 @author: green
 """
 import numpy as np
 import pandas as pd
 
 print(pd.__version__)
 # CSV の読み込み
 ddf = pd.read_csv("./CSV/R3ban.csv", encoding='utf-8', dtype=object)
 
 dfR = ddf[[u"取扱日付",u"お支払金額",u"お預り金額"]] 
 print(dfR)
 
 dfR['Date'] = pd.to_datetime(dfR[u'取扱日付'], format=u'%Y年%m月%d日',errors='coerce')
 
 dfR['Pay'] = dfR["お支払金額"].str.strip('\\')  ## 円記号の削除
 dfR['Pay'] = dfR["Pay"].replace(',','', regex=True)  ## カンマの削除
 dfR['Pay'] = pd.to_numeric(dfR["Pay"],errors="coerce")
 
 dfR['Dep'] = dfR["お預り金額"].str.strip('\\')
 dfR['Dep'] = dfR["Dep"].replace(',','', regex=True)
 # dfR['Dep'] = deR["Dep"].astype(int)
 dfR['Dep'] = pd.to_numeric(dfR["Dep"],errors="coerce")
 
 print(dfR.head() )
 
 dfR.to_csv("./CSV/0000.csv")