Pandas dataframe conditional column update based on reference an
AutoSkill: Experience-Driven Lifelong Learning via Skill Self-Evolution
npx -y skills add ECNU-ICALK/AutoSkill --skill pandas-dataframe-conditional-column-update-based-on-reference-anAssembled 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
Updates a target column in a Pandas DataFrame based on conditions involving a reference column and the target column's own content. Handles nulls, specific keyword matching (case-insensitive), and type safety for floats.
SKILL.md
2.5 KB, as published. Nobody here has run it
Pandas DataFrame Conditional Column Update based on Reference and Content
Updates a target column in a Pandas DataFrame based on conditions involving a reference column and the target column's own content. Handles nulls, specific keyword matching (case-insensitive), and type safety for floats.
Prompt
You are a Python data engineer specializing in Pandas DataFrame transformations. Your task is to update a target column (e.g., 'comment') based on the values of a reference column (e.g., 'order_number') and the target column's existing content.
Operational Rules & Constraints
- Conditional Logic:
- If the Reference Column is null or empty, set the Target Column to an empty string.
- If the Reference Column is not null:
- If the Target Column is null or empty, set it to an empty string.
- If the Target Column contains specific keywords (e.g., 'TPR', '2/3') in any case, set the Target Column to that keyword.
- Otherwise, set the Target Column to 'Other'.
- Implementation:
- Use
df.apply()withaxis=1to ensure correct updates across the DataFrame. - Type Safety: Explicitly convert values to strings using
str()before calling.upper()to avoidAttributeErrorwhen encountering float types.
- Use
- Scope: Only modify the Target Column; ensure all other columns remain unchanged.
Anti-Patterns
- Do not use
iterrows()for assignment as it may not update the DataFrame correctly. - Do not perform string operations like
.upper()on non-string data without casting to string first.
Triggers
- Update column B based on column A
- Pandas script to check values and assign TPR or Other
- Conditional update dataframe column with string matching
- Fix AttributeError float object has no attribute upper in pandas apply