我有一个类型为NaN
的变量,我正在尝试查找列表中唯一的项,即它们仅出现一次。
示例:q4.fillna(0, inplace=True)
预期输出:result = q4[(q4['Count6'] < q['Count7']) & (q4['Count7'] < q4['Count8'])]
答案 0 :(得分:3)
只需分组,然后选择计数为1
的位置:
var uniqueList = data.GroupBy(x => x).Where(x => x.Count() == 1).Select(x => x.Key).ToList();
答案 1 :(得分:1)
您可能想尝试以下LINQ语句:
using System;
using System.Collections.Generic;
using System.Linq;
public class Program
{
public static void Main()
{
var data = new List<int>(new int[] { 1, 1, 5, 2, 2 , 7 });
var output = data.Select((value, index) => new {value, index})
.Where(a => data.Count(b => a.value == b) == 1)
.Select(a => a.value)
.ToList();
output.ForEach(o => System.Console.WriteLine(o));
}
}
如果您仍在寻找索引,则可能需要尝试以下操作:
using System;
using System.Collections.Generic;
using System.Linq;
public class Program
{
public static void Main()
{
var data = new List<int>(new int[] { 1, 1, 5, 2, 2 , 7 });
var output = data.Select((value, index) => new {value, index})
.Where(a => data.Count(b => a.value == b) == 1)
.Select(a => a.index)
.ToList();
output.ForEach(o => System.Console.WriteLine(o));
}
}
答案 2 :(得分:0)
您也可以使用Linq,
var listA = new List<int> {1, 1, 5, 2, 2 , 7};
var listB = from g in listA.GroupBy(x => x) where g.Count() == 1 select g.First();
foreach (var item in listB)
{
Console.WriteLine(item);
}