首页 > 解决方案 > 如何基于其他列创建 6 个新列

问题描述

我有这个df:

        TMAX  TMIN    PP
CODE                  
000130   990  1026  1033
000132   799  1160   711
000134  1727  1680  1730
000135   576   626   791
000136  1348  1242  1203
     ...   ...   ...
000543   927   902  1341
000546   168   167   263
000547   383   359   315
000548   372   393   601
000549   811   896   919

[100 rows x 3 columns]

我想创建 6 个新列。前三列将是 TMAXYEAR、TMINYEAR 和 PPYEAR,如下所示:

df['TMAXYEAR']=df['TMAX']/365
df['TMINYEAR']=df['TMIN']/365
df['PPYEAR']=df['PP']/365 

其他列将是 TMAXPERC TMINPERC 和 PPERC:

df['TMAXPERC']=df['TMAX']*100/10958
df['TMINPERC']=df['TMIN']*100/10958
df['PPERC']=df['PP']*100/10958  

我想知道是否有另一种更有效的方法来做到这一点。我也在考虑:

dfyear=df[['TMAX','TMIN','PP']]/365
dfperc=df[['TMAX','TMIN','PP']]*100/10958

然后加入这两个 df(dfyear 和 dfperc),但我仍然相信还有其他更有效的方法。

你介意帮助我吗?提前致谢。

标签: pythonpandas

解决方案


您可以一次创建多个列,请尝试:

l_cols=df.columns 
#or if you limit the columns l_cols=['TMAX', 'TMIN', 'PP']
df[l_cols + 'YEAR'] = df[l_cols]/365
df[l_cols + 'PERC'] = df[l_cols]*100/10958
print(df)

推荐阅读