2017-01-05 9 views
1

'mapped'データフレームの値を 'mappings'データフレームのマッピングに置き換えようとしています。pythonデータフレームの値を置き換えます

for column in df: 
    mapped[column] = df[column].astype(str) 

for i, row in mappings.iterrows(): 
    coln = row['colname'] 
    val = row['value'] 
    map = row['mapping'] 
    print 'match::' + coln + ":"+str(val)+ ":"+str(map) 
    print mapped[mapped[coln]== val] 
    mapped[coln].replace(str(val), str(map)) 

print mapped.head() 

一致するレコードがありますが、 'mapped'データフレームの値は置き換えられません。これをどうすれば解決できますか?

+1

'replace'は、デフォルトでは' inplace'操作ではありません。変更を関心のある列に戻す必要があります。だから 'mapped [coln] .replace(str(val)、str(map)、inplace = True)' –

答えて

2

mapped[coln].replace(str(val), str(map))

replaceは、デフォルトでは、インプレースではありません。どちらかそれをinplace=Trueを渡すか、それを再割り当て:

mapped[coln].replace(str(val), str(map), inplace=True)

または

mapped[coln] = mapped[coln].replace(str(val), str(map))

+0

ありがとうDeepSpace :) – SaikiHanee

関連する問題