小さなケース:パンダの方法を適用する

パンダには、次のような特に便利な適用方法があります。

  • 列内計算、特定の列の特定の計算のみ
  • 列間の計算、複数の列間の複雑な計算
    実験データを見てみましょう

pdとしてパンダを
インポートnpとしてnumpyをインポート

マトリックス= [
['Zhang San'、 '1995-12-31'、 'Shandong'、 'Undergraduate']、
['Li Si'、 '1993-05-29'、 'Hebei'、 'C​​ollege']、
[ 'Wang Wu'、 '1995-03-14'、 'Shanxi'、 'Master']、
['Zhao Liu'、 '1992-07-08'、 'Inner Mongolia'、 'Undergraduate']、
]

df = pd.DataFrame(matrix、columns = ['Name'、 'Birthday'、 'From'、 'Edu'])
df


![](https://s4.51cto.com/images/blog/202012/30/8732ee5fb5eaec5ebd93c4ea8631b1a4.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
**df.apply(func)或series.apply(func)**
axis控制操作方向

* 0 表示列方向
* 1 表示行方向
**列内计算**
一般列内计算,实际上主要是对series做的操作,比如选中dataframe某列。

df['colname'].apply(func) 默认只对列方向对colname列做func操作,例如计算每个员工的出生年份、年龄。

def year(birthday):#
誕生日文字列インターセプトする
return int(birthday [:4])

#誕生日列で年関数操作を使用する
df ['Year'] = df ['Birthday']。apply(year)


Agedf [ '年齢'] = 2020-DF [ '年']

df


![](https://s4.51cto.com/images/blog/202012/30/4f41556903f7932897c29fb73d2378d9.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
**列间计算**
df.apply(func, axis=1)不同列之间可以有复杂的计算,比如想计算 设计自我介绍模板

def intro(r):
rは、データフレーム内の任意の行を参照します。これはシリーズタイプのデータであり、辞書のような使用方法があります。
return 'みなさん、こんにちは。私は{name}です。\
{province}州出身です。\
今年は{age}歳です!'.format(name = r [' Name ']、Province
= r [' From ']、
age = r [' Age '])

df ['Intro'] = df.apply(intro、axis = 1)
df



![](https://s4.51cto.com/images/blog/202012/30/dc1af803e8cb6031a1c61af182f1a485.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

おすすめ

転載: blog.51cto.com/15069487/2578567