如何对 Pandas 列执行数学运算并将其另存为新数据帧


a          b           c
6/29/2018   0.744189037 0.251833984 0.632784618
6/30/2018   0.476601558 0.694181607 0.7951655
7/1/2018    0.91376258  0.111712256 0.813708374
7/2/2018    0.849505199 0.037035716 0.973137932

所以我正在尝试使用这个数据框并创建一个基于数学运算的新数据框。到目前为止,我有df3 = df2[['a','b']] and df4 = pd.DataFrame(df3[['a']]*2 - df3[['b']]).

总而言之,我想使用 df3 和多列 a 乘以 2,然后用列 b 减去该值,然后将结果放入一个全新的数据框中。

我也想得到的最终输出是

2*a-b
6/29/2018   1.23654409
6/30/2018   0.259021508
7/1/2018    1.715812903
7/2/2018    1.661974683

但是,这将产生NA的所有值。

如果需要将mulsub一起使用,最后一to_frame为一列DataFrame

df1 = df['a'].mul(2).sub(df['b']).to_frame('col')
#same as
#df1 = (df['a'] * 2 - df['b']).to_frame('col')
print (df1)
col
6/29/2018  1.236544
6/30/2018  0.259022
7/1/2018   1.715813
7/2/2018   1.661975

对于Series

s = df['a'].mul(2).sub(df['b'])
print (s)
6/29/2018    1.236544
6/30/2018    0.259022
7/1/2018     1.715813
7/2/2018     1.661975
dtype: float64

ind_df = df['col_a'].apply(lambda x: x*2( - df[col_b']

最新更新