1.apply()説明
スコープ:パンダにSeries
とDataFrame
効果:使用するapply()
方法を、私たちは機能の独自の定義を呼び出すことができ、簡潔なコードより明確な構造を、作ります。
2.apply()アプリケーション・プロセス
もしSeries
とDataFrame
呼び出しapply()
方法、およびその関数定義の最初のパラメータので、機能、独自の定義を使用表すSeries
とDataFrame
次の「緯度」。
それはたとえば、DataFrame
場合、引数は彼のすべての列です。そうならばSeries
、それは彼のすべての値です。
(1) DataFrame
、各パラメータは、自分の列である
例えば:計算DataFrame
歪度および尖度の各フィールド
import pandas as pd
import numpy as np
df = pd.DataFrame({
'key1':[1, 2, 3, 4, 5],
'key2':[4, 5, 6, 2, 1]
})
def skew_kurt(x):
print(x, type(x))
skews = x.skew()
kurts = x.kurt()
return pd.Series([skews, kurts], index=['skew', 'kurt']) # Series的参数为Series,则会变为DataFrame,且参数变为列
print(df.apply(skew_kurt))
# 结果:
0 1
1 2
2 3
3 4
4 5
Name: key1, dtype: int64 <class 'pandas.core.series.Series'>
0 1
1 2
2 3
3 4
4 5
Name: key1, dtype: int64 <class 'pandas.core.series.Series'>
0 4
1 5
2 6
3 2
4 1
Name: key2, dtype: int64 <class 'pandas.core.series.Series'>
key1 key2
skew 0.0 -0.235514
kurt -1.2 -1.963223
何度も実行される関数の出力から見た、と毎回実行することができDataFrame
、過去の伝記の。
(2) Series
、彼の各パラメータ値
例:1 Series
最初の文字の各値については、その値に置き換えられます
import pandas as pd
import numpy as np
s = pd.Series(['wang', 'li', 'zhao'])
def text(x):
print(x, type(x))
return x[0] # Series的参数为Series,则会变为DataFrame,且参数变为列
print(s.apply(text))
# 结果:
wang <class 'str'>
li <class 'str'>
zhao <class 'str'>
0 w
1 l
2 z
dtype: object
3.apply()アプリケーション
(1)一例として上に、我々はそれが適用され得ることを確認することができSeries
、及びDataFrame
(2)apply()
の方法はまた、---パケットに適用されてもよいですgroupby()
。また、次のパラメータの緯度を表します。
例えば:
import pandas as pd
import numpy as np
df = pd.DataFrame({'data1':np.random.rand(5),
'data2':np.random.rand(5),
'key1':list('aabba'),
'key2':['one','two','one','two','one']})
print(df.groupby('key1').apply(lambda x: x.describe()))
# 结果:
a count 3.000000 3.000000
mean 0.693046 0.608697
std 0.257070 0.522231
min 0.396401 0.011814
25% 0.614231 0.422315
50% 0.832060 0.832817
75% 0.841368 0.907138
max 0.850676 0.981459
b count 2.000000 2.000000
mean 0.352287 0.482039
std 0.343271 0.675147
min 0.109558 0.004638
25% 0.230922 0.243339
50% 0.352287 0.482039
75% 0.473651 0.720740
max 0.595016 0.959441
4.まとめ
- 使用して
apply()
メソッドを、私たちは機能の独自の定義を呼び出すことができ、コードをより明確な構造、簡潔になります。 - 最初の引数定義するので、それは次の「緯度」を表します。