{"record":{"id":"32fdb764852edaad","repo":"dotnet/machinelearning","slug":"variable-name-0-matches-an-existing-column-nam","errorCode":null,"errorMessage":"Variable name '{0}' matches an existing column name","messagePattern":"Variable name '(.+?)' matches an existing column name","errorType":"validation","errorClass":"ArgumentException","httpStatus":null,"severity":"error","filePath":"src/Microsoft.Data.Analysis/DataFrame.cs","lineNumber":793,"sourceCode":"\n            if (valueColumns != null && valueColumnList.Count == 0)\n            {\n                throw new ArgumentException(Strings.MissingValueColumns, nameof(valueColumns));\n            }\n\n            if (valueColumns != null && valueColumnList.Any(v => idColumnList.Contains(v)))\n            {\n                throw new ArgumentException(Strings.DuplicateColumnsInIdAndValueLists, nameof(valueColumns));\n            }\n\n            if (valueColumns == null && valueColumnList.Count == 0)\n            {\n                throw new InvalidOperationException(Strings.NoValueColumnsRemaining);\n            }\n\n            if (_columnCollection.IndexOf(variableName) >= 0)\n            {\n                throw new ArgumentException(string.Format(Strings.VariableNameAlreadyExists, variableName), nameof(variableName));\n            }\n\n            if (_columnCollection.IndexOf(valueName) >= 0)\n            {\n                throw new ArgumentException(string.Format(Strings.ValueNameAlreadyExists, valueName), nameof(valueName));\n            }\n\n            if (string.Equals(variableName, valueName))\n            {\n                throw new ArgumentException(string.Format(Strings.VariableNameAndValueNameMustBeDifferent, nameof(variableName), nameof(valueName)), nameof(valueName));\n            }\n\n            foreach (var columnName in idColumnList)\n            {\n                if (_columnCollection.IndexOf(columnName) < 0)\n                {\n                    throw new ArgumentException(string.Format(Strings.InvalidColumnName, columnName), nameof(idColumns));\n                }","sourceCodeStart":775,"sourceCodeEnd":811,"githubUrl":"https://github.com/dotnet/machinelearning/blob/7b76e69cf964daeca3f1377af6bc5543284d56c6/src/Microsoft.Data.Analysis/DataFrame.cs#L775-L811","documentation":"Thrown by DataFrame.Melt when the variableName matches a column name already present in the DataFrame, since melt would create a duplicate 'variable' column. Raised as ArgumentException (Strings.VariableNameAlreadyExists, formatted with the name) on 'variableName'.","triggerScenarios":"Calling df.Melt(ids, values, variableName: \"Sales\") when a column named 'Sales' already exists; using the default \"variable\" while the DataFrame already has a 'variable' column (e.g. re-melting an already-melted frame).","commonSituations":"Running melt twice on the same DataFrame in a pipeline; name collisions with measurement columns; config-supplied names that clash with the schema.","solutions":["Choose a variableName that does not collide with any existing column (e.g. \"attribute\")","Rename or drop the conflicting column before melting","Check _columns.IndexOf(variableName) < 0 before calling Melt"],"exampleFix":"// before\ndf.Melt(ids, values, variableName: \"Sales\"); // 'Sales' column exists\n// after\ndf.Melt(ids, values, variableName: \"Metric\");","handlingStrategy":"validation","validationCode":"if (df.Columns.IndexOf(variableName) >= 0) variableName = variableName + \"_melt\";","typeGuard":"bool IsFreeName(DataFrame df, string name) => df.Columns.IndexOf(name) < 0;","tryCatchPattern":"try { df.Melt(ids, values, variableName); }\ncatch (ArgumentException ex) when (ex.ParamName == \"variableName\") { /* pick a non-colliding name and retry */ }","preventionTips":["Generate output names with a suffix or prefix to avoid schema collisions","Check column names before re-melting already-melted frames","Reserve the variable/value names in your schema naming convention"],"tags":["dotnet","dataframe","melt","name-collision"],"backgroundTag":"invalid-argument-value","analyzedSha":"7b76e69cf964daeca3f1377af6bc5543284d56c6","analyzedAt":"2026-09-11T12:35:38.930Z","contentChangedAt":"2026-09-11T12:35:38.930Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}