[英]How to create 6 new columns based on other columns
我有這個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),但我仍然相信還有其他更有效的方法。
你介意幫助我嗎? 提前致謝。
您可以一次創建多個列,請嘗試:
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)
我認為使list
中的更改列將來更易於維護
l = ['TMAX','TMIN','PP']
df = df.join((df[l]/365).add_suffix('YEAR').join((df[l]*100/10958).add_suffix('PERC')))
df
Out[167]:
TMAX TMIN PP TMAXYEAR ... PPYEAR TMAXPERC TMINPERC PPPERC
CODE ...
130 990 1026 1033 2.712329 ... 2.830137 9.034495 9.363022 9.426903
132 799 1160 711 2.189041 ... 1.947945 7.291477 10.585873 6.488410
134 1727 1680 1730 4.731507 ... 4.739726 15.760175 15.331265 15.787552
135 576 626 791 1.578082 ... 2.167123 5.256434 5.712721 7.218471
136 1348 1242 1203 3.693151 ... 3.295890 12.301515 11.334185 10.978281
[5 rows x 9 columns]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.