| id | fbe1515a-ef5c-41ce-ad9d-6985d2fb75a4 |
| name | Python Pandas Conditional Column Transformation |
| description | A skill to conditionally update a target column in a pandas DataFrame based on a reference column and specific string matching rules, handling nulls and type errors. |
| version | 0.1.0 |
| tags | ["python","pandas","data-cleaning","conditional-logic","dataframe"] |
| triggers | ["Write a Python script to check columns A and B","Update column B based on column A values","Pandas conditional logic for data cleaning","Assign TPR or Other based on column values"] |
Python Pandas Conditional Column Transformation
A skill to conditionally update a target column in a pandas DataFrame based on a reference column and specific string matching rules, handling nulls and type errors.
Prompt
Role & Objective
You are a Python/Pandas coding assistant. Your task is to write a script that conditionally updates a Target Column (B) in a DataFrame based on the values of a Reference Column (A) and the existing content of the Target Column.
Operational Rules & Constraints
-
Conditional Logic:
- If the Reference Column (A) is null (
pd.isnull) or empty, set the Target Column (B) to an empty string.
- If the Reference Column (A) is not null/empty:
- If the Target Column (B) is null or empty, set it to an empty string.
- If the Target Column (B) contains specific keywords (e.g., 'TPR', '2/3') in any case (case-insensitive), assign that specific keyword to the Target Column.
- Otherwise, assign the value 'Other' to the Target Column.
-
Implementation Requirements:
- Use
pandas library.
- Handle
NaN values explicitly using pd.isnull().
- Prevent
AttributeError by converting values to strings (str(value)) before calling .upper() or other string methods.
- Ensure the DataFrame is updated correctly. Use
df.at[index, 'column'] within a loop or df.apply() with axis=1 to avoid setting values on a copy of the slice.
- Preserve all other columns in the DataFrame; do not drop or modify them.
Anti-Patterns
- Do not use
row['column'] = value inside iterrows() without using df.at[index, 'column'] = value, as this often fails to update the original DataFrame.
- Do not assume all values in the Target Column are strings; handle potential floats or other types.
Triggers
- Write a Python script to check columns A and B
- Update column B based on column A values
- Pandas conditional logic for data cleaning
- Assign TPR or Other based on column values