{"record":{"id":"96372030c7963abc","repo":"dotnet/machinelearning","slug":"value-name-0-matches-an-existing-column-name","errorCode":null,"errorMessage":"Value name '{0}' matches an existing column name","messagePattern":"Value name '(.+?)' matches an existing column name","errorType":"validation","errorClass":"ArgumentException","httpStatus":null,"severity":"error","filePath":"src/Microsoft.Data.Analysis/DataFrame.cs","lineNumber":798,"sourceCode":"\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                }\n            }\n\n            foreach (var columnName in valueColumnList)\n            {\n                if (_columnCollection.IndexOf(columnName) < 0)","sourceCodeStart":780,"sourceCodeEnd":816,"githubUrl":"https://github.com/dotnet/machinelearning/blob/7b76e69cf964daeca3f1377af6bc5543284d56c6/src/Microsoft.Data.Analysis/DataFrame.cs#L780-L816","documentation":"Thrown by DataFrame.Melt (or similar reshaping API) when the valueName you pass for the new melted values column already matches an existing column name in the DataFrame. The library requires all output column names of the reshape operation to be unique so the result schema is unambiguous.","triggerScenarios":"Calling a DataFrame melt/reshape API whose valueName parameter collides with an existing column: _columnCollection.IndexOf(valueName) >= 0 inside the public DataFrame method at src/Microsoft.Data.Analysis/DataFrame.cs:798.","commonSituations":"Melting a wide table into long form where 'Values' or 'Value' already exists as a column; programmatic loops that reuse a default valueName without renaming prior columns; repeated melts on the same frame.","solutions":["Choose a valueName that does not already exist in the DataFrame","Drop or rename the conflicting column before melting","Catch ArgumentException and surface a clear message about the duplicate output column name"],"exampleFix":"// before\ndf.Melt(idColumns: new[] {\"Date\"}, valueColumns: new[] {\"A\",\"B\"}, variableName: \"Var\", valueName: \"A\");\n// after\ndf.Melt(idColumns: new[] {\"Date\"}, valueColumns: new[] {\"A\",\"B\"}, variableName: \"Var\", valueName: \"Value\");","handlingStrategy":"validation","validationCode":"if (df.Columns.Any(c => c.Name == valueName)) throw new InvalidOperationException($\"Column '{valueName}' already exists; pick another valueName.\");","typeGuard":null,"tryCatchPattern":"try { df.Melt(ids, values, varName, valueName); }\ncatch (ArgumentException ex) when (ex.ParamName == \"valueName\") { /* prompt for a different valueName */ }","preventionTips":["Uniqueness-check output names against df.Columns before any melt","Avoid default names like 'Value' that commonly collide","After drops/renames, re-derive the name list rather than caching it"],"tags":["dotnet","dataframe","argument-exception","duplicate-column"],"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-14T05:17:10.506Z"}