Kleiner Fall: Pandas-Methode anwenden

Es gibt eine besonders nützliche Methode zur Anwendung bei Pandas, einschließlich

  • In-Spalten-Berechnungen werden nur bestimmte Berechnungen für eine bestimmte Spalte durchgeführt
  • Berechnungen zwischen Spalten, komplexe Berechnungen zwischen mehreren Spalten
    Schauen wir uns die experimentellen Daten an

Pandas als pd
importieren numpy als np importieren

Matrix = [
['Zhang San', '1995-12-31', 'Shandong', 'Undergraduate'],
['Li Si', '1993-05-29', 'Hebei', 'College'],
[ 'Wang Wu', '1995-03-14', 'Shanxi', 'Meister'],
['Zhao Liu', '1992-07-08', 'Innere Mongolei', 'Undergraduate'],
]

df = pd.DataFrame (Matrix, Spalten = ['Name', 'Geburtstag', 'Von', '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 Jahr (Geburtstag): #Das Jahr zum
Abfangen der Geburtstagszeichenfolge
return int (Geburtstag [: 4])

#Verwenden Sie die Jahresfunktionsoperation in der Geburtstagsspalte
df ['Jahr'] = df ['Geburtstag']. Anwenden (Jahr)

#
Agedf ['Alter'] = 2020-df ['Jahr']

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 bezieht sich auf eine beliebige Zeile im Datenrahmen. Es handelt sich um Daten vom Serientyp und verfügt über eine wörterbuchähnliche Verwendungsmethode.
Hallo, ich bin {Name}, \
aus {Provinz} Provinz, \
dieses Jahr {Alter} Jahre alt! '.format (Name = r [' Name '],
Provinz = r [' Von '],
Alter = r [' Alter '])

df ['Intro'] = df.apply (Intro, Achse = 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=)

Ich denke du magst

Origin blog.51cto.com/15069487/2578567
Empfohlen
Rangfolge