删除没有一列的重复行

帕维·维特科夫斯基(PawełWitkowski)

我有这样的数据表:

Headache|Nausea|Temp  |Flu
no      |no    |normal|no
yes     |no    |high  |yes
yes     |yes   |high  |yes
yes     |no    |normal|no
no      |no    |high  |no
no      |no    |high  |yes

我想删除所有重复的行而没有一列(流感):

no      |no    |high  |no
no      |no    |high  |yes

并得到结果:

Headache|Nausea|Temp  |Flu
no      |no    |normal|no
yes     |no    |high  |yes
yes     |yes   |high  |yes
yes     |no    |normal|no

如何使用linq实现呢?

杰登

尝试这样的事情

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("Headache", typeof(string));
            dt.Columns.Add("Nausea", typeof(string));
            dt.Columns.Add("Temp", typeof(string));
            dt.Columns.Add("Flu", typeof(string));

            dt.Rows.Add(new string[] {"no", "no" ,"normal", "no"});
            dt.Rows.Add(new string[] {"yes", "no" ,"high", "yes"});
            dt.Rows.Add(new string[] {"yes", "yes" ,"high", "yes"});
            dt.Rows.Add(new string[] {"yes", "no" ,"normal", "no"});
            dt.Rows.Add(new string[] {"no", "no" ,"high", "no"});
            dt.Rows.Add(new string[] {"no", "no" ,"high", "yes"});

            var dict = dt.AsEnumerable()
                .GroupBy(x => new { Headache = x.Field<string>("Headache"), Nausea = x.Field<string>("Nausea"), Temp = x.Field<string>("Temp") }, y => y)
                .ToDictionary(x => x.Key, y => y.ToList());

            DataTable dt2 = dict.Where(x => x.Value.Count == 1).SelectMany(y => y.Value).CopyToDataTable();

            //or simply this
            DataTable dt3 = dt.AsEnumerable()
                .GroupBy(x => new { Headache = x.Field<string>("Headache"), Nausea = x.Field<string>("Nausea"), Temp = x.Field<string>("Temp") })
                .Where(x => x.Count() == 1).SelectMany(y => y).CopyToDataTable();

        }
    }
}
​

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

删除第一列重复的行

来自分类Dev

删除一列动态数据中具有重复项的行的重复项

来自分类Dev

删除一列中具有重复值但另一列中具有不同值的行

来自分类Dev

csv删除一列中具有重复值的所有行

来自分类Dev

熊猫-从另一列中删除具有最高价值的重复行

来自分类Dev

根据第一列对2个文件进行排序和合并,没有重复的行

来自分类Dev

根据第一列对2个文件进行排序和合并,没有重复的行

来自分类Dev

如何提取第一列中没有重复值的行?

来自分类Dev

查询以删除所有重复的行,但没有列是唯一的行

来自分类Dev

根据一列值删除重复的行

来自分类Dev

从一列而不是行中删除重复项

来自分类Dev

删除bash第一列中重复的行

来自分类Dev

如何删除重复的ID行。删除时,在另一列中使用具有NULL值的行

来自分类Dev

删除一列中具有重复值但其他列中具有不同值的行

来自分类Dev

熊猫删除对一列具有不同价值的行,但对所有其他列重复

来自分类Dev

删除一列中具有重复值但其他列中具有不同值的行

来自分类Dev

删除一列中值重复但另一列中值不同的行

来自分类Dev

根据另一列的条件删除一列中重复的行

来自分类Dev

根据另一列的条件删除一列中重复的行

来自分类Dev

Excel 2016:如何删除列中没有重复的行?

来自分类Dev

加入同一列但没有行

来自分类Dev

如何选择没有指定行的一列?

来自分类Dev

如果另一列是 NA,R data.table 删除其中一列重复的行

来自分类Dev

Python Pandas:基于一列删除重复的行,并连接多列中的信息

来自分类Dev

根据列删除重复的行,同时保持下一列的最大值

来自分类Dev

如果重复则删除一行,然后在另一列上过滤

来自分类Dev

删除重复项,其中同一行中另一列的值= 0

来自分类Dev

用一列替换重复的行

来自分类Dev

如何删除具有一个唯一列的重复记录

Related 相关文章

  1. 1

    删除第一列重复的行

  2. 2

    删除一列动态数据中具有重复项的行的重复项

  3. 3

    删除一列中具有重复值但另一列中具有不同值的行

  4. 4

    csv删除一列中具有重复值的所有行

  5. 5

    熊猫-从另一列中删除具有最高价值的重复行

  6. 6

    根据第一列对2个文件进行排序和合并,没有重复的行

  7. 7

    根据第一列对2个文件进行排序和合并,没有重复的行

  8. 8

    如何提取第一列中没有重复值的行?

  9. 9

    查询以删除所有重复的行,但没有列是唯一的行

  10. 10

    根据一列值删除重复的行

  11. 11

    从一列而不是行中删除重复项

  12. 12

    删除bash第一列中重复的行

  13. 13

    如何删除重复的ID行。删除时,在另一列中使用具有NULL值的行

  14. 14

    删除一列中具有重复值但其他列中具有不同值的行

  15. 15

    熊猫删除对一列具有不同价值的行,但对所有其他列重复

  16. 16

    删除一列中具有重复值但其他列中具有不同值的行

  17. 17

    删除一列中值重复但另一列中值不同的行

  18. 18

    根据另一列的条件删除一列中重复的行

  19. 19

    根据另一列的条件删除一列中重复的行

  20. 20

    Excel 2016:如何删除列中没有重复的行?

  21. 21

    加入同一列但没有行

  22. 22

    如何选择没有指定行的一列?

  23. 23

    如果另一列是 NA,R data.table 删除其中一列重复的行

  24. 24

    Python Pandas:基于一列删除重复的行,并连接多列中的信息

  25. 25

    根据列删除重复的行,同时保持下一列的最大值

  26. 26

    如果重复则删除一行,然后在另一列上过滤

  27. 27

    删除重复项,其中同一行中另一列的值= 0

  28. 28

    用一列替换重复的行

  29. 29

    如何删除具有一个唯一列的重复记录

热门标签

归档