pandas基本操作整理
16867 ワード
pandas学習ノート
この文章はkaggleのウェブサイトのpandasチュートリアルから整理して得て、学習の過程の中でチュートリアルの中のルーチンを歩いて本当にとても役に立ちます.ここでは、チュートリアルに関連する操作を以下に整理し、後続の検索で使用しやすいようにします.
SeriesとDataFrameはPandasで最もよく使われる2つのオブジェクトです.
1.ブックの作成、読み取り、書き込み
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
Apples
Bananas
2017 Sales
35
21
2018 Sales
41
34
2.索引、選択および割当て
列に指定された要素へのアクセス
3.統計関数
4.グループ化とソート
groupbyでは、DataFrameのペアで表示される要素、列を統計することもできます.
2つのパラメータ
5.データ型と損失データ処理
6.ワークブックの名前変更とマージ
この文章は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.DataFrame
DataFrameの作成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.Series
Seriesを作成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_csv
DataFrameを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]
iloc
とloc
の違い:0:10
について、iloc
は0,1,...9
を表し、loc
は0,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つのパラメータ
by
とascending
を含み、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_axis
indexを再命名し、例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"))