Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

You can use a combination of the .apply() and .startswith() methods to achieve this. Here's an example:

import pandas as pd

# create sample dataframe
df = pd.DataFrame({'fruit': ['apple', 'banana', 'kiwi', 'orange', 'pear'], 
                   'color': ['red', 'yellow', 'brown', 'orange', 'green']})

# define function to substitute strings
def replace_fruit_color(row):
    if row['fruit'].startswith('a'):
        return 'red'
    elif row['fruit'].startswith('b'):
        return 'yellow'
    else:
        return row['color']

# apply function to 'color' column and create new column with results
df['new_color'] = df.apply(replace_fruit_color, axis=1)

# display updated dataframe
print(df)

This will output:

    fruit   color new_color
0   apple     red       red
1  banana  yellow    yellow
2    kiwi   brown     brown
3  orange  orange    orange
4    pear   green     green

In this example, the replace_fruit_color function checks each row in the dataframe and returns a new string value for the color column based on whether the fruit column starts with a certain letter. The apply method applies this function to each row, and the results are stored in a new new_color column.