pandas-best-practices — скилл для Claude Code: как установить
Скилл настраивает ИИ-ассистента на быструю работу с Pandas: векторизацию, цепочки методов и корректную типизацию. Пригодится при анализе данных и оптимизации медленных скриптов.
npx skills add Mindrally/skills --skill pandas-best-practices -a claude-codeЧто делает pandas-best-practices
Скилл передаёт агенту правила работы с Pandas. Он запрещает лишние классы и явные циклы в пользу векторизации. При загрузке через pd.read_csv() агент сразу фиксирует типы dtype и разбирает даты через parse_dates. Для текстовых колонок с редкими значениями задаётся категориальный тип. Это бережёт оперативную память.
В преобразованиях агент выстраивает цепочки методов через .assign() и .pipe(). Вместо небезопасной сцепки индексов он берёт .loc[] или .iloc[]. Обход строк через .iterrows() ломает производительность на объёмных файлах, поэтому скилл заменяет циклы встроенными агрегациями и массивами NumPy. Срезы защищаются методом .copy() от ошибки SettingWithCopyWarning. Никаких случайных изменений данных.
Для связывания таблиц скилл выбирает .merge() с проверкой мощности связей через аргумент validate. Временные ряды обрабатываются через DatetimeIndex и скользящие окна .rolling(). Агент не наращивает датафрейм построчно, а сначала собирает записи в список. Анализ остаётся воспроизводимым.
Какие задачи решает
- Оптимизировать медленные вычисления заменой циклов на векторизацию
- Избавиться от предупреждений SettingWithCopyWarning при модификации срезов
- Снизить расход памяти переводом строковых колонок в категории
- Настроить проверку связей при объединении таблиц через validate в .merge()
Примеры запросов агенту
- Оптимизируй загрузку
transactions.csv: настрой типы колонок и разбор дат - Перепиши обработку таблицы без циклов
.iterrows()с использованием цепочки методов - Объедини
users.csvиorders.csvчерез.merge()с проверкой отношения один ко многим
Как установить pandas-best-practices
1Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill pandas-best-practices -a claude-code2Вручную: положить файлы
~/.claude/skills/pandas-best-practices/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/pandas-best-practices/
1Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill pandas-best-practices -a codex2Вручную: положить файлы
.agents/skills/pandas-best-practices/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill pandas-best-practices -a cursor2Вручную: положить файлы
.cursor/skills/pandas-best-practices/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install Mindrally/skills pandas-best-practices2Вручную: положить файлы
.github/skills/pandas-best-practices/SKILL.md1Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill pandas-best-practices -a gemini-cli2Командой платформы
gemini skills install https://github.com/Mindrally/skills --path pandas-best-practicesВручную: положить файлы
.devin/skills/pandas-best-practices/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill pandas-best-practices -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о pandas-best-practices
Как установить pandas-best-practices в Claude Code?
Запустите команду npx skills add Mindrally/skills --skill pandas-best-practices -a claude-code. Файл скилла запишется по пути ~/.claude/skills/pandas-best-practices/SKILL.md.
Зачем нужен скилл pandas-best-practices?
Он задаёт модели правила написания кода на Pandas без циклов и лишних классов. Ассистент применяет векторизацию, выстраивает цепочки методов и избегает ошибок с SettingWithCopyWarning.
Как скилл помогает снизить расход оперативной памяти?
Правила требуют указывать dtype при чтении файлов, сжимать числовые типы и переводить столбцы с повторяющимися строками в категориальный формат.
Исходный текст
SKILL.md · Apache-2.0
--- name: pandas-best-practices description: Best practices for Pandas data manipulation, analysis, and DataFrame operations in Python metadata: maintainer: Mindrally source: https://github.com/Mindrally/skills --- # Pandas Best Practices Expert guidelines for Pandas development, focusing on data manipulation, analysis, and efficient DataFrame operations. ## Code Style and Structure - Write concise, technical responses with accurate Python examples - Prioritize reproducibility in data analysis workflows - Use functional programming; avoid unnecessary classes - Prefer vectorized operations over explicit loops - Use descriptive variable names reflecting data content - Follow PEP 8 style guidelines ## DataFrame Creation and I/O - Use `pd.read_csv()`, `pd.read_excel()`, `pd.read_json()` with appropriate parameters - Specify `dtype` parameter to ensure correct data types on load - Use `parse_dates` for automatic datetime parsing - Set `index_col` when the data has a natural index column - Use `chunksize` for reading large files incrementally ## Data Selection - Use `.loc[]` for label-based indexing - Use `.iloc[]` for integer position-based indexing - Avoid chained indexing (e.g., `df['col'][0]`) - use `.loc` or `.iloc` instead - Use boolean indexing for conditional selection: `df[df['col'] > value]` - Use `.query()` method for complex filtering conditions ## Method Chaining - Prefer method chaining for data transformations when possible - Use `.pipe()` for applying custom functions in a chain - Chain operations like `.assign()`, `.query()`, `.groupby()`, `.agg()` - Keep chains readable by breaking across multiple lines ## Data Cleaning and Validation ### Missing Data - Check for missing data with `.isna()` and `.info()` - Handle missing data appropriately: `.fillna()`, `.dropna()`, or imputation - Use `pd.NA` for nullable integer and boolean types - Document decisions about missing data handling ### Data Quality Checks - Implement data quality checks at the beginning of analysis - Validate data types with `.dtypes` and convert as needed - Check for duplicates with `.duplicated()` and handle appropriately - Use `.describe()` for quick statistical overview ### Type Conversion - Use `.astype()` for explicit type conversion - Use `pd.to_datetime()` for date parsing - Use `pd.to_numeric()` with `errors='coerce'` for safe numeric conversion - Utilize categorical data types for low-cardinality string columns ## Grouping and Aggregation ### GroupBy Operations - Use `.groupby()` for efficient aggregation operations - Specify aggregation functions with `.agg()` for multiple operations - Use named aggregation for clearer output column names - Consider `.transform()` for broadcasting results back to original shape ### Pivot Tables and Reshaping - Use `.pivot_table()` for multi-dimensional aggregation - Use `.melt()` to convert wide to long format - Use `.pivot()` to convert long to wide format - Use `.stack()` and `.unstack()` for hierarchical index manipulation ## Performance Optimization ### Memory Efficiency - Use categorical data types for low-cardinality strings - Downcast numeric types when appropriate - Use `pd.eval()` and `.eval()` for large expression evaluation ### Computation Speed - Use vectorized operations instead of `.apply()` with row-wise functions - Prefer built-in aggregation functions over custom ones - Use `.values` or `.to_numpy()` for NumPy operations when faster ### Avoiding Common Pitfalls - Avoid iterating with `.iterrows()` - use vectorized operations - Don't modify DataFrames while iterating - Be aware of SettingWithCopyWarning - use `.copy()` when needed - Avoid growing DataFrames row by row - collect in list and create once ## Time Series Operations - Use `DatetimeIndex` for time series data - Leverage `.resample()` for time-based aggregation - Use `.shift()` and `.diff()` for lag operations - Use `.rolling()` and `.expanding()` for window calculations ## Merging and Joining - Use `.merge()` for SQL-style joins - Specify `how` parameter: 'inner', 'outer', 'left', 'right' - Use `validate` parameter to check join cardinality - Use `.concat()` for stacking DataFrames ## Key Conventions - Import as `import pandas as pd` - Use `snake_case` for column names when possible - Document data sources and transformations - Keep notebooks reproducible with clear cell execution order
© Mindrally · Apache-2.0 · Mindrally/skills