您可以
assign-从
doc以下位置取样:
import pandas as pdimport numpy as npdf = pd.Dataframe({'A': range(1, 11), 'B': np.random.randn(10)})print df A B0 1 0.7690281 2 -0.3924712 3 0.1530513 4 -0.3798484 5 -0.6654265 6 0.8806846 7 1.1263817 8 -0.5598288 9 0.8629359 10 -0.909402df = df.assign(ln_A = lambda x: np.log(x.A))print df A B ln_A0 1 0.769028 0.0000001 2 -0.392471 0.6931472 3 0.153051 1.0986123 4 -0.379848 1.3862944 5 -0.665426 1.6094385 6 0.880684 1.7917596 7 1.126381 1.9459107 8 -0.559828 2.0794428 9 0.862935 2.1972259 10 -0.909402 2.302585还是
apply如陆奇所说。
有时
lambda功能会有所帮助:
import pandas as pdimport numpy as npdf = pd.Dataframe({'A': range(1, 11), 'B': np.random.randn(10)})df['ln_A'] = df['A'].apply(np.log)df['round'] = df['B'].apply(lambda x: np.round(x, 2))print df A B ln_A round0 1 -0.982828 0.000000 -0.981 2 2.306111 0.693147 2.312 3 0.967858 1.098612 0.973 4 -0.286280 1.386294 -0.294 5 -2.026937 1.609438 -2.035 6 0.061735 1.791759 0.066 7 -0.506620 1.945910 -0.517 8 -0.309438 2.079442 -0.318 9 -1.261842 2.197225 -1.269 10 1.079921 2.302585 1.08


