Python Pandsグループ統合の実現方法
Pycharmマウスは関数に移動し、CTRL+Qは文書を素早く調べ、CTR+Pは基本的なパラメータを見ることができます。
appy()、appymap()とmap()
appy()とappymap()はDataFrameの関数で、map()はSeriesの関数です。
apply()の操作対象はDataFrameの一行または一列のデータであり、appymap()はDataFrameの各要素である。map()もSeriesの各要素です。
apple()はdataframeの内容を一括処理します。これはサイクルより早いです。df.apply(func,axis=0,...)Fnc:定義された関数,axis=0の場合は列操作,=1の場合は行操作です。
map()とpython内に建てられたのは違いがありません。df[one'.map(sqrt)のようです。
GroupbyはPandsの中で最も一般的で効果的なグループ関数で、sum()、count()、mean()などの統計関数があります。
groupby方法で戻ってきたDataFrame GroupByオブジェクトは、実際にはデータコンテンツを含んでいません。それはdf[key 1']の中間データを記録しています。パケットデータに関数または他の統合演算を適用すると、パンdasはグループ化されたbyオブジェクト内に記録された情報に基づいてdfを高速にブロック分けして演算し、結果を返します。
グループのある列(行)または複数の列(行、axis=0/1)に対して、agg(func)を適用して、パケット後のデータにfunc関数を適用することができます。例えば、grouped['data 1']で、agg('mean')もグループ後の'data 1'列に対して平均値を求める。もちろん、複数の列(行)と複数の関数を同時に使用することもできます。
一方、aggは複数の関数を同時に導入して、異なる列に作用することができる。
sum メン sum メン
key 1
a. 2.80273 0.926758-1.61696-0.5555
b -0.323-0.54160-1.82162-0.6981
ダタ1 data 2 key 1 key 2
key 1
a. 2.80273-1.61696 aa onetwoone
b -0.82320-1.3682 bb。 onetwo
アプリとaggは基本的に近い機能ですが、複数の関数の場合はaggが便利です。
apply自体の自由度が高く、グループに分けてから重合をしないようにすることは観察の場です。
http://pandas.pydata.org/pandas-docs/stable/groupby.html
このほかに、透視表ピvot_もあります。テーブル、クロステーブルcrosstabですが、使ったことがありません。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。
appy()、appymap()とmap()
appy()とappymap()はDataFrameの関数で、map()はSeriesの関数です。
apply()の操作対象はDataFrameの一行または一列のデータであり、appymap()はDataFrameの各要素である。map()もSeriesの各要素です。
apple()はdataframeの内容を一括処理します。これはサイクルより早いです。df.apply(func,axis=0,...)Fnc:定義された関数,axis=0の場合は列操作,=1の場合は行操作です。
map()とpython内に建てられたのは違いがありません。df[one'.map(sqrt)のようです。
import numpy as np
from pandas import Series, DataFrame
frame = DataFrame(np.random.randn(4, 3),
columns = list('bde'),
index = ['Utah', 'Ohio', 'Texas', 'Oregon'])
print frame
print np.abs(frame)
print
f = lambda x: x.max() - x.min()
print frame.apply(f)
print frame.apply(f, axis = 1)
def f(x):
return Series([x.min(), x.max()], index = ['min', 'max'])
print frame.apply(f)
print
print 'applymap map'
_format = lambda x: '%.2f' % x
print frame.applymap(_format)
print frame['e'].map(_format)
Group byGroupbyはPandsの中で最も一般的で効果的なグループ関数で、sum()、count()、mean()などの統計関数があります。
groupby方法で戻ってきたDataFrame GroupByオブジェクトは、実際にはデータコンテンツを含んでいません。それはdf[key 1']の中間データを記録しています。パケットデータに関数または他の統合演算を適用すると、パンdasはグループ化されたbyオブジェクト内に記録された情報に基づいてdfを高速にブロック分けして演算し、結果を返します。
df = DataFrame({'key1': ['a', 'a', 'b', 'b', 'a'],
'key2': ['one', 'two', 'one', 'two', 'one'],
'data1': np.random.randn(5),
'data2': np.random.randn(5)})
grouped = df.groupby(df['key1'])
print grouped.mean()
df.groupby(lambda x:'even' if x%2==0 else 'odd').mean() #
重合agg()グループのある列(行)または複数の列(行、axis=0/1)に対して、agg(func)を適用して、パケット後のデータにfunc関数を適用することができます。例えば、grouped['data 1']で、agg('mean')もグループ後の'data 1'列に対して平均値を求める。もちろん、複数の列(行)と複数の関数を同時に使用することもできます。
df = DataFrame({'key1': ['a', 'a', 'b', 'b', 'a'],
'key2': ['one', 'two', 'one', 'two', 'one'],
'data1': np.random.randn(5),
'data2': np.random.randn(5)})
grouped = df.groupby('key1')
print grouped.agg('mean')
data1 data2
key1
a 0.749117 0.220249
b -0.567971 -0.126922
apply()とagg()は機能的にほぼ同じで、apply()は通常、異なるパケットの欠落データのパディングとtop Nの計算を処理するために使用され、階層的な索引を生成する。一方、aggは複数の関数を同時に導入して、異なる列に作用することができる。
df = DataFrame({'key1': ['a', 'a', 'b', 'b', 'a'],
'key2': ['one', 'two', 'one', 'two', 'one'],
'data1': np.random.randn(5),
'data2': np.random.randn(5)})
grouped = df.groupby('key1')
print grouped.agg(['sum','mean'])
print grouped.apply(np.sum) #apply , , 。
ダタ1 ダタ2 sum メン sum メン
key 1
a. 2.80273 0.926758-1.61696-0.5555
b -0.323-0.54160-1.82162-0.6981
ダタ1 data 2 key 1 key 2
key 1
a. 2.80273-1.61696 aa onetwoone
b -0.82320-1.3682 bb。 onetwo
アプリとaggは基本的に近い機能ですが、複数の関数の場合はaggが便利です。
apply自体の自由度が高く、グループに分けてから重合をしないようにすることは観察の場です。
print grouped.apply(lambda x: x.describe())
data1 data2
key1
a count 3.000000 3.000000
mean -0.887893 -1.042878
std 0.777515 1.551220
min -1.429440 -2.277311
25% -1.333350 -1.913495
50% -1.237260 -1.549679
75% -0.617119 -0.425661
max 0.003021 0.698357
b count 2.000000 2.000000
mean -0.078983 0.106752
std 0.723929 0.064191
min -0.590879 0.061362
25% -0.334931 0.084057
50% -0.078983 0.106752
75% 0.176964 0.129447
max 0.432912 0.152142
また、appyは、リターンデータの次元を変更することもできます。http://pandas.pydata.org/pandas-docs/stable/groupby.html
このほかに、透視表ピvot_もあります。テーブル、クロステーブルcrosstabですが、使ったことがありません。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。