Маленький случай: применить метод панд

В пандах есть особенно полезный метод применения, включая

  • Вычисления в столбцах, только определенные вычисления выполняются для определенного столбца
  • Расчеты между столбцами, сложные вычисления между несколькими столбцами
    Давайте посмотрим на экспериментальные данные

импортировать панды как pd
импортировать numpy как np

matrix = [
['Zhang San', '1995-12-31', 'Shandong', 'Undergraduate'],
['Li Si', '1993-05-29', 'Hebei', 'College'],
[ «Ван Ву», «1995-03-14», «Шаньси», «Мастер»],
[«Чжао Лю», «1992-07-08», «Внутренняя Монголия», «Студент»],
]

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

# Используйте операцию функции year в столбце дня рождения
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}, \
from { 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