2017-04-13 4 views
2

私の投稿を訪問していただきありがとうございます。私の下に次のデータフレームがあります。リスト内に存在する場合は、データフレーム全体の文字列を置換してください

df1 
     col1         col2 
    1 virginia is cold, canada is cold too virginia is cold, canada is cold too 
    2 florida, virginia, washington are good florida, virginia, washington are good 
    3 georgia, alabama, virginia are hot  virginia is cold, canada is cold too 
    4 virginia, ohio, new castle are great hawaii, nebreska is wonderful 
    5 hawaii, nebreska is wonderful   virginia, ohio, new castle are great 

をまた、私は文字列を含むリストを持っている:

lst = ['virginia', 'hot', 'too'] 

私はそれのいずれかに一致する場合、「XXXXXX」で全体のデータフレーム内の文字列を置換しますリスト内の文字列例えば、私のデータフレームを交換した後、次のようになります。

df1 
      col1         col2 
     1 xxxxxx is cold, canada is cold xxxxxx xxxxxx is cold, canada is cold xxxxxx 
     2 florida, xxxxxx, washington are good florida, xxxxxx, washington are good 
     3 georgia, alabama, xxxxxx are xxxxxx  xxxxxx is cold, canada is cold xxxxxx 
     4 xxxxxx, ohio, new castle are great  hawaii, nebreska is wonderful 
     5 hawaii, nebreska is wonderful   xxxxxx, ohio, new castle are great 

はこれまでのところ、私が試してみましたが、それは動作しません:

df1 = df1.replace(lst, "xxxxxx") 

答えて

3

単語リストから辞書を作成し、正規表現

lst = ['virginia', 'hot', 'too'] 
df1.replace({w: "xxxxxx" for w in lst}, regex=True) 

enter image description here

2

はここのようなリストlstを反復処理するようにしてください:

import pandas as pd 

... 
lst = ['virginia', 'hot', 'too'] 
for s in lst: 
    df1.replace(s, 'xxxxx', inplace=True) 

print(df1) 
3
df1.replace(lst, 'x' * 5, regex=True) 

            col1         col2 
1 xxxxx is cold, canada is cold xxxxx xxxxx is cold, canada is cold xxxxx 
2 florida, xxxxx, washington are good florida, xxxxx, washington are good 
3 georgia, alabama, xxxxx are xxxxx xxxxx is cold, canada is cold xxxxx 
4 xxxxx, ohio, new castle are great  hawaii, nebreska is wonderful 
5  hawaii, nebreska is wonderful xxxxx, ohio, new castle are great 
関連する問題