pandas基本操作整理


pandas学習ノート
この文章はkaggleのウェブサイトのpandasチュートリアルから整理して得て、学習の過程の中でチュートリアルの中のルーチンを歩いて本当にとても役に立ちます.ここでは、チュートリアルに関連する操作を以下に整理し、後続の検索で使用しやすいようにします.
SeriesとDataFrameはPandasで最もよく使われる2つのオブジェクトです.
1.ブックの作成、読み取り、書き込みread_csv()csvファイルからデータを読み出し、describe()dataFrameデータの基本情報、例えば要素個数count,平均値mean,中位数50%,例:
# save filepath to variable for easier access
melbourne_file_path = '../input/melbourne-housing-snapshot/melb_data.csv'
# read the data and store data in DataFrame titled melbourne_data
melbourne_data = pd.read_csv(melbourne_file_path) 
# print a summary of the data in Melbourne data
melbourne_data.describe()

Rooms
Price
Distance
Postcode
count
13580.000000
1.358000e+04
13580.000000
13580.000000
mean
2.937997
1.075684e+06
10.137776
3105.301915
std
0.955748
6.393107e+05
5.868725
90.676964
min
1.000000
8.500000e+04
0.000000
3000.000000
25%
2.000000
6.500000e+05
6.100000
3044.000000
50%
3.000000
9.030000e+05
9.200000
3084.000000
75%
3.000000
1.330000e+06
13.000000
3148.000000
max
10.000000
9.000000e+06
48.100000
3977.000000 pd.DataFrameDataFrameの作成
fruit_sales = pd.DataFrame({"Apples":[35,41] , "Bananas":[21,34]},index = ["2017 Sales", "2018 Sales"])

Apples
Bananas
2017 Sales
35
21
2018 Sales
41
34 pd.SeriesSeriesを作成
quantities = ["4 cups","1 cup","2 large","1 can"]
items = ["Flour","Milk","Eggs","Spam"]
ingredients = pd.Series(quantities, index = items , name = "Dinner",dtype = object)
to_csvDataFrameをcsvファイルとして保存
2.索引、選択および割当てiloc[ ]DataFrameの行要素へのアクセス例
first_row = reviews.iloc[0]
sample_reviews = reviews.iloc[[1,2,3,5,8]]
loc[]DataFrameの作成行および列へのアクセス例
cols = ['country','province','region_1','region_2']
indices = [0,1,10,100]
df = reviews.loc[indices,cols]
iloclocの違い:0:10について、iloc0,1,...9を表し、loc0,1...,10を表す
列に指定された要素へのアクセス
italian_wines = reviews.loc[reviews.country=='Italy']

top_oceania_wines = reviews.loc[(reviews.country.isin(['Australia','New Zealand']))&(reviews.points>=95)]

3.統計関数median()計算中位数unique()統計に含まれる要素の具体的な値value_counts統計要素出現回数mean()平均値を求める例
#0    
centered_price = reviews.price-reviews.price.mean()
idxmax()最大要素のindexを取得apply()dataFrame上で予め定義された操作を実行する例
def stars(row):
    if row.country == 'Canada':
        return 3
    elif row.points >= 95:
        return 3
    elif row.points >= 85:
        return 2
    else:
        return 1
    
star_ratings = reviews.apply(stars, axis = 'columns')

4.グループ化とソートgroupbyデータFrameに表示される要素を統計し、使用時にsize()またはcount()と結合するSeriesを作成します.例
reviews_written = reviews.groupby('taster_twitter_handle').size()

reviews_written = reviews.groupby('taster_twitter_handle').taster_twitter_handle.count()

groupbyでは、DataFrameのペアで表示される要素、列を統計することもできます.
#   country  variety         
country_variety_counts = reviews.groupby(['country','variety']).size().sort_values(ascending = False)
agg()カラムの集約操作、例
price_extremes = reviews.groupby('variety').price.agg([min,max])
sort_values()並べ替え
2つのパラメータbyascendingを含み、byは参照ソートの列を表し、入力された要素はlistであり、listの最初の要素は主参照列を表し、2番目の要素は第2の参照列を表し、主参照列の要素が同じである場合、第2の参照列の要素を比較し、ascendingは昇順を表す
sorted_varieties = price_extremes.sort_values(by=['min', 'max'], ascending=False)
mean()平均値を求める操作
5.データ型と損失データ処理dtypeは、DataFrameまたはSeriesタイプのデータの属性であり、直接アクセス可能astype()関数はデータ型変換を実行し、関数の入力変数はターゲットデータ型、例えばstrはstring型であるisnull()欠落した要素がDataFrameに含まれているかどうかを判断し、その結果、DataFrame要素の対応する位置に対応するTrueまたはFalseが返される.2つの使用形態
reviews.price.isnull()
pd.isnull(reviews.price)
fillna()欠落したデータを埋め込み、関数の入力変数は0,‘unknown’のような埋め込みデータである
6.ワークブックの名前変更とマージrename()カラムの名前変更操作を行うことができます.
# reviews   renamed,        
renamed = reviews.rename(columns = dict(region_1='region',region_2='locale'))
rename_axisindexを再命名し、例
reindexed = reviews.rename_axis('wines',axis = 'rows')
concat()2つのDataFrameを行ごとに結合する例
combined_products = pd.concat([gaming_products,movie_products])
join()2つのDataFrameを列ごとに統合します.2つのDataFrameのindexは同じでなければなりません.set_に合わせることができます.indexはindexを指定してマージします
# powerlifting_meets powerlifting_competitors       ,   index "MeetID"
powerlifting_combined = powerlifting_meets.set_index("MeetID").join(powerlifting_competitors.set_index("MeetID"))