【Pandas文摘(Applying Operations Over pandas Dataframes)】曾无好事来相访,赖尔高文一起予。这篇文章主要讲述Pandas文摘:Applying Operations Over pandas Dataframes相关的知识,希望能为你提供帮助。
原文地址:https://chrisalbon.com/python/data_wrangling/pandas_apply_operations_to_dataframes/
Applying Operations Over pandas Dataframes
20 Dec 2017Import Modules
import pandas as pd
import numpy as np
Create a dataframe
data = https://www.songbingjia.com/android/{‘name‘: [‘Jason‘, ‘Molly‘, ‘Tina‘, ‘Jake‘, ‘Amy‘],
‘year‘: [2012, 2012, 2013, 2014, 2014],
‘reports‘: [4, 24, 31, 2, 3],
‘coverage‘: [25, 94, 57, 62, 70]}
df = pd.DataFrame(data, index = [‘Cochice‘, ‘Pima‘, ‘Santa Cruz‘, ‘Maricopa‘, ‘Yuma‘])
df
coverage | name | reports | year | |
---|---|---|---|---|
Cochice | 25 | Jason | 4 | 2012 |
Pima | 94 | Molly | 24 | 2012 |
Santa Cruz | 57 | Tina | 31 | 2013 |
Maricopa | 62 | Jake | 2 | 2014 |
Yuma | 70 | Amy | 3 | 2014 |
capitalizer = lambda x: x.upper()
Apply the capitalizer function over the column ‘name’
apply() can apply a function along any axis of the dataframe
df[‘name‘].apply(capitalizer)
CochiceJASON
PimaMOLLY
Santa CruzTINA
MaricopaJAKE
YumaAMY
Name: name, dtype: object
Map the capitalizer lambda function over each element in the series ‘name’
map() applies an operation over each element of a series
df[‘name‘].map(capitalizer)
CochiceJASON
PimaMOLLY
Santa CruzTINA
MaricopaJAKE
YumaAMY
Name: name, dtype: object
Apply a square root function to every single cell in the whole data frame
applymap() applies a function to every single element in the entire dataframe.
# Drop the string variable so that applymap() can run
df = df.drop(‘name‘, axis=1)# Return the square root of every cell in the dataframe
df.applymap(np.sqrt)
coverage | reports | year | |
---|---|---|---|
Cochice | 5.000000 | 2.000000 | 44.855323 |
Pima | 9.695360 | 4.898979 | 44.855323 |
Santa Cruz | 7.549834 | 5.567764 | 44.866469 |
Maricopa | 7.874008 | 1.414214 | 44.877611 |
Yuma | 8.366600 | 1.732051 | 44.877611 |
# create a function called times100
def times100(x):
# that, if x is a string,
if type(x) is str:
# just returns it untouched
return x
# but, if not, return it multiplied by 100
elif x:
return 100 * x
# and leave everything else
else:
return
Apply the times100 over every cell in the dataframe
df.applymap(times100)
coverage | reports | year | |
---|---|---|---|
Cochice | 2500 | 400 | 201200 |
Pima | 9400 | 2400 | 201200 |
Santa Cruz | 5700 | 3100 | 201300 |
Maricopa | 6200 | 200 | 201400 |
Yuma | 7000 | 300 | 201400 |
推荐阅读
- 那些好用的阅读软件(Windows & Android)
- vs code配置flutter开发android
- 为Eclipse安装ADT(Android Development Tools)
- Android Lifecycle使用
- uni-app官方教程学习手记
- CentOS7 安装虚拟环境 virtualenvwrapper
- information_schema系列之字符集校验(CHARACTER_SETS,COLLATIONS,COLLATION_CHARACTER_SET_APPLICABILITY)
- Android-ContentProvider原理图
- android EditText自定义样式