pandas apply创建新列

我们可以根据花瓣宽度创建一个新列,如果宽度大于1则是宽花瓣为1,否则为0

import matplotlib.pyplot as plt
import pandas as pd


df = pd.read_csv("/temp/iris.data",names=['花萼长度', '花萼宽度', '花瓣长度', '花瓣宽度', '类别'])

df['宽花瓣'] = df['花瓣宽度'].apply(lambda v:1 if v>=1 else 0)

print(df)

也可以数据框上使用apply,而不是在一个单独的序列上

import matplotlib.pyplot as plt
import pandas as pd


df = pd.read_csv("/temp/iris.data",names=['花萼长度', '花萼宽度', '花瓣长度', '花瓣宽度', '类别'])

df['花瓣面积'] = df.apply(lambda r:r['花瓣宽度']*r['花瓣长度'],axis=1)

print(df)

axis=1的参数来告诉pandas,我们要对行运用函数。如果传入了axis=0,那么该函数将对列进行操作。