[Solved] Map column birthdates in python pandas df to astrology signs


You can apply the zodiac_sign function to the dataframe as –

import pandas as pd
from io import StringIO

# Sample
x = StringIO("""birthdate,answer,YEAR,MONTH-DAY
1970-03-31,5,1970,03-31
1970-05-25,9,1970,05-25
1970-06-05,3,1970,06-05
1970-08-28,2,1970,08-28
""")


df = pd.read_csv(x, sep=',')

df['birthdate'] = pd.to_datetime(df['birthdate'])
df['zodiac_sign'] = df['birthdate'].apply(lambda x: zodiac_sign(x.day, x.strftime("%B").lower()))
print(df)

Output:

   birthdate  answer  YEAR MONTH-DAY zodiac_sign
0 1970-03-31       5  1970     03-31       aries
1 1970-05-25       9  1970     05-25      gemini
2 1970-06-05       3  1970     06-05      Gemini
3 1970-08-28       2  1970     08-28       virgo

solved Map column birthdates in python pandas df to astrology signs