根据数据条件创建DataColumnCollection

Phate01

我有这个数据表

+----+---+---+---+
| id | s | m | l |
+----+---+---+---+
| 1  | 2 | 3 |   |
+----+---+---+---+
| 2  |   | 3 | 4 |
+----+---+---+---+

s, m, l代表T恤尺寸,值是数量。我必须id = 1仅对具有值的大小列显示一行(比方说)。因此,对于我的行,我将仅显示s和m列。有没有一种方法可以只删除我需要的列的数据表?

蒂姆·施密特(Tim Schmelter)

一个DataTable包含通常在多个DataRows,但只有一个DataColumnCollection因此,您可以删除没有至少一个带有值的行的所有列。

然后,您需要DataTable仅使用“已填充”列来创建一个新的以下方法不仅适用于单个方法,DataRow而且适用于多个方法:

var rows = dataTable.AsEnumerable()
    .Where(row => row.Field<int>("ID") == id);    // a LINQ query

var columnsWithoutValues =  dataTable.Columns.Cast<DataColumn>()
    .Where(col => rows.All(r => r.IsNull(col)));  // columns without values

DataTable tblResult = dataTable.Clone(); // same columns no data
foreach (DataColumn colToRemove in columnsWithoutValues)
    tblResult.Columns.Remove(colToRemove.ColumnName); // remove columns without data

tblResult.BeginLoadData();   // disable constraints temporarily
foreach (DataRow row in rows)
{
    DataRow newRow = tblResult.Rows.Add();
    foreach (DataColumn col in tblResult.Columns)
        newRow[col] = row[col.ColumnName];
}
tblResult.EndLoadData();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据熊猫数据框的条件创建字典

来自分类Dev

根据条件根据列的总和值创建新的数据框

来自分类Dev

组合数据以根据条件随机创建新数据

来自分类Dev

根据条件变量在列中的差异创建数据框

来自分类Dev

根据R中数据框中的列条件创建向量

来自分类Dev

根据条件在熊猫数据框中创建一列

来自分类Dev

根据条件在数据框中创建新列

来自分类Dev

如何根据条件在数据框中创建新列

来自分类Dev

根据条件在数据集中创建新行

来自分类Dev

根据熊猫数据框中的条件创建行

来自分类Dev

在熊猫数据框中根据条件为组创建列

来自分类Dev

熊猫创建完美的面板数据,根据条件附加空行

来自分类Dev

根据条件创建向量

来自分类Dev

根据条件搜索数据

来自分类Dev

根据条件过滤数据

来自分类Dev

根据条件插入数据

来自分类Dev

根据列上的条件,根据文件中的工作表名称从 Pandas 数据帧创建 csv 文件

来自分类Dev

根据来自两个数据框和多个条件的条件创建一对

来自分类Dev

根据数据创建范围

来自分类Dev

根据数据创建列

来自分类Dev

根据多个数据框的条件创建一个新的数据框

来自分类Dev

SSRS根据条件创建小计

来自分类Dev

根据条件创建新行

来自分类Dev

根据条件创建Python字典

来自分类Dev

根据条件选择数据块

来自分类Dev

根据条件删除融化数据

来自分类Dev

根据条件熊猫清理数据

来自分类Dev

根据条件分割数据帧

来自分类Dev

根据条件联接数据集