【pythonシロ】日常業務におけるいくつかのTIPS(二)

2847 ワード

pandasが直接ファイルを読み取るのは便利ですが、接触したばかりの頃はDataFrame型の行列選択が混乱しやすく、array型の選択と混同されることが多いです.2つの構造の異なる行列操作をまとめた.
#       
import numpy as np
import pandas as pd
a = np.random.randn(3,4)
a = pd.DataFrame(a)
a.columns=['A','B',' ',' ']
b = np.array(a)

a
Out: 
          A         B                    
0 -0.111949  0.527505  2.368722  1.224539
1  0.682014  1.437826  0.004001 -0.330349
2  0.716501 -1.719973  0.718745  2.023330

b
Out: 
array([[-0.11194892,  0.5275052 ,  2.36872241,  1.22453866],
       [ 0.68201417,  1.43782573,  0.00400142, -0.33034887],
       [ 0.7165014 , -1.71997254,  0.71874518,  2.02332967]])

行の選択
DataFrame
loc[],iloc[],ix[]を使用して選択できます.
#     ,          
a.loc[1:3]
Out: 
          A         B                    
1  0.682014  1.437826  0.004001 -0.330349
2  0.716501 -1.719973  0.718745  2.023330

#     
a.loc[[1,2]]
Out: 
          A         B                    
1  0.682014  1.437826  0.004001 -0.330349
2  0.716501 -1.719973  0.718745  2.023330

#       
a.ix[[1],[1]]
Out: 
          B
1  1.437826

array
それに比べて、マトリクスの操作はずっと便利です.
#     
b[1:3]
Out: 
array([[ 0.68201417,  1.43782573,  0.00400142, -0.33034887],
       [ 0.7165014 , -1.71997254,  0.71874518,  2.02332967]])

#     
b[[1,2]]
Out: 
array([[ 0.68201417,  1.43782573,  0.00400142, -0.33034887],
       [ 0.7165014 , -1.71997254,  0.71874518,  2.02332967]])

#       
b[1,1]
Out: 1.4378257322265775

列の選択
DataFrame
行選択よりも、DataFrame形式の列選択が簡単で、中国語と英語のcolumnは列名で直接選択できます.
#     
a.A
Out: 
0   -0.111949
1    0.682014
2    0.716501
Name: A, dtype: float64

a[['B',' ']]
Out: 
          B          
0  0.527505  1.224539
1  1.437826 -0.330349
2 -1.719973  2.023330

columnの名前が複雑で、入力方式を切り替えることが多く不便な場合や、多くの列を選択したい場合は、インデックスで選択できます.pandasここには小さな穴があり、連続列は直接a[1:3]でエラーを報告します.
#      ,     
a[np.arange(1,3)]
Out: 
          B          
0  0.527505  2.368722
1  1.437826  0.004001
2 -1.719973  0.718745

#      ,     
a[[1,3]]
Out: 
          B          
0  0.527505  1.224539
1  1.437826 -0.330349
2 -1.719973  2.023330

array
数値処理時のマトリクスの簡便な直感を感じた.
b[:,[1,3]]
Out: 
array([[ 0.5275052 ,  1.22453866],
       [ 1.43782573, -0.33034887],
       [-1.71997254,  2.02332967]])

b[[1,2],[1,2]]
Out: array([ 1.43782573,  0.71874518])

Openpyxlを追加してxlsxファイルの下のデータの選択を開きます.
import openpyxl
wb = openpyxl.load_workbook('file path')
sheets = wb.get_sheet_names()
sheet1 = wb.get_sheet_by_name(sheets[0])
sheet1['B1'].value    #          
sheet1.cell(row=1, column=1).value    #      

2つの構造は互いに容易に変換することができ、pd.DataFrame(),np.array()【またはnp.asarray(),両者にわずかな差がある】.手慣れたやり方を選びましょう.
TBC