2016-07-26 146 views
0

我有這樣的代碼:如何通過新的值熊貓替換列中的值

def chgFormat(x): 
    newFormat = 0 
    if x[-1] == 'K': 
     if len(x)==1:newFormat=1000 
     else:newFormat = float(x[:-1])*1000 
    elif x[-1] == 'M': 
     newFormat = float(x[:-1]) * 100000 
    elif x[-1] == 'B': 
     newFormat = float(x[:-1]) * 1000000 
    elif x[-1] == 'H': 
     newFormat = float(x[:-1]) * 100 
    elif x[-1] == 'h': 
     newFormat = float(x[:-1]) * 100 
    else: 
     newFormat = float(x) 
    return newFormat 


frame=pd.read_csv(folderpath+"/StormEvents_details-ftp_v1.0_d1951_c20160223.csv",index_col=None,encoding = "ISO-8859-1",header=0,low_memory=False) 
frame['DAMAGE_PROPERTY'].fillna('0K',inplace=True) 
frame['DAMAGE_PROPERTY'].apply(chgFormat) 

此代碼轉換像2K, 3K, 3H, 3B數據輸入到2000.0, 3000.0, 300.0

我要的是這個碼應該更換色譜柱由寫入函數中的值計算的值的條目。如果我在寫完代碼後做了print(frame['DAMAGE_PROPERTY']),我仍然可以看到原始值。

回答

2

你可以試試這個

frame['DAMAGE_PROPERTY'] = frame['DAMAGE_PROPERTY'].apply(chgFormat, axis=1) 
+0

這是非常簡單的。感謝您指出... – chinmaykelkar