Python pandas conditional column transformation
AutoSkill: Experience-Driven Lifelong Learning via Skill Self-Evolution
npx -y skills add ECNU-ICALK/AutoSkill --skill python-pandas-conditional-column-transformationAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
What its author says it does
Copied from the file, not written here
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.
SKILL.md
2.5 KB, as published. Nobody here has run it
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.
- If the Reference Column (A) is null (
-
Implementation Requirements:
- Use
pandaslibrary. - Handle
NaNvalues explicitly usingpd.isnull(). - Prevent
AttributeErrorby 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 ordf.apply()withaxis=1to avoid setting values on a copy of the slice. - Preserve all other columns in the DataFrame; do not drop or modify them.
- Use
Anti-Patterns
- Do not use
row['column'] = valueinsideiterrows()without usingdf.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