Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

if statement for popping elements in pandas dict

My pandas dict looks like this:

import pandas as pd

data = {'address': ["William J. Clare\\n290 Valley Dr.\\nCasper, WY 82604\\nUSA",
                    "1180 Shelard Tower\\nMinneapolis, MN 55426\\nUSA",
                    "William N. Barnard\\n145 S. Durbin\\nCasper, WY 82601\\nUSA",
                    "215 S 11th ST"]
        }

df = pd.DataFrame(data)
df_dict = df.to_dict('records')

for row in df_dict:
    add = row["address"]
    print(add.split("\\n"), len(add.split("\\n")))

If you see I need to write an if statement to pop the 1st or 1st 2 elements in the dict if len(add.split("\\n")) is equal to 4 then pop the 1st element and if len(add.split("\\n")) is equal to 5 then pop the 1st two elements and save it has a pandas dataframe.

Your help will be greatly appreciated. I am stuck with this because when I give the if statement it says pop operation cannot be applied for str objects.

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

Thanks

>Solution :

import pandas as pd

data = {'address': ["William J. Clare\\n290 Valley Dr.\\nCasper, WY 82604\\nUSA",
                    "1180 Shelard Tower\\nMinneapolis, MN 55426\\nUSA",
                    "William N. Barnard\\n145 S. Durbin\\nCasper, WY 82601\\nUSA",
                    "215 S 11th ST"]
        }

df = pd.DataFrame(data)
df_dict = df.to_dict('records')

for row in df_dict:
    add = row["address"]
    if len(add.split("\\n"))==4:
       target = add.split("\\n")
       target.pop(0)
       target = '\\n'.join(target)
    if len(add.split("\\n"))==5:
       target = add.split("\\n")
       target.pop(0)
       target.pop(1)
       target = '\\n'.join(target)
    print(target)
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading