简体   繁体   中英

Replace rows of strings in dataframe with corresponding words in other dataframe pandas

I have a df which has 1 column

     List
 0   What are you trying to achieve
 1   What is your purpose right here
 2   When students don’t have a proper foundation
 3   I am going to DESCRIBE a sunset

I have other dataframe df2

which has 2 columns

    original       correct
0     are          were
1     sunset       sunrise
2     I            we
3     right        correct
4     is           was

I want to replace such words in my df,which occurs in original column of my df2 and replace with corresponding words in correct column. and store the new strings in other dataframe df_new

Is it possible without using loops and iteration, and only using plain pandas concept?

ie my df_new should contain.

     List
 0   What were you trying to achieve
 1   What was your purpose correct here
 2   When students don’t have a proper foundation
 3   we am going to DESCRIBE a sunrise

Also this is just a test example, MY df MIGHT CONTAIN millions of rows of string, and so my df2, What would be the most efficient solution path i can go on?

One of many possible solutions:

In [371]: boundary = r'\b'
     ...:
     ...: df.List.replace((boundary + df2.orignal + boundary).values.tolist(),
     ...:                 df2.correct.values.tolist(),
     ...:                 regex=True)
     ...:
Out[371]:
0                  What were you trying to achieve
1               What was your purpose correct here
2     When students don’t have a proper foundation
3                we am going to DESCRIBE a sunrise
Name: List, dtype: object

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM