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=)