Ryan Fink
Ryan Fink

Reputation: 39

How do I replace one cell in a data frame with another data in a different data frame?

I am trying to replace a value in the data frame dh based on the data frame larceny. If the date in larceny exists, I want to find the corresponding date in dh and replace the corresponding 5th column entry with 1.

I am currently (somewhat successfully) doing it with the below code but, it is taking forever. Any help on this?

When I try to compare the dates, the code does not work, so I compare the .value of the dates and this seems to work.

import pandas as pd
from datetime import datetime

for i, row in dh.iterrows():
    for j in range(45314):

        if dh.iat[i,0].value==larceny.iat[j,0].value:
                dh.iat[i,5]=1
                print("Larceny")
                print(i,j)
                print(dh.iat[i,0],larceny.iat[j,0])
                print(dh.iat[i,0].value,larceny.iat[j,0].value,'\n\n')

Basically, dh has a cell for each hour of each day for 4 years. I want to populate the cell for each hour with a 1 in the "Is_larceny" column, if that corresponding year-month-day-hour appears in the larceny data frame.

Please help. I tried some pandas search methods but I was having a problem with comparing dates and searching and replacing properly.

Thanks.

Upvotes: 0

Views: 39

Answers (1)

Ben Pap
Ben Pap

Reputation: 2579

dh.loc[dh['col1'].isin(larceny['col2']), 'col1'] = 1

This looks for any value in the dh['col1'] that also appears in larceny['col2'], then sets those values in dh['col1'] to 1. You will have to replace col1 and col2 with your respective column names.

Upvotes: 1

Related Questions