连续获取所有唯一值

时间:2017-11-22 16:43:02

标签: python pandas dataframe

我有一个如下所示的DataFrame df1

A       B       C
-----------------
1       1       2
2       2       3
5       4       9

我希望连续获得所有唯一值。例如,第一行中的示例1和2。 2,3排在第二排。第三排是4,5和9。

结果可能会有所不同,我可以想象一个包含具有唯一值的列表或用None替换重复项的新列也可以(或者其他东西,也许这种情况下会有更多pythonic)。 / p>

3 个答案:

答案 0 :(得分:14)

if (grade.Teachers.IsNotNull() && grade.Teachers.Any())
{
     grade.Teachers.ForEach(i => SchoolContext.SetModified(i));
}

//Add or update Students
if (grade.Students.IsNotNull() && grade.Students.Any())
{
     grade.Students.ForEach(s =>
     {
          if (s.StudentIdentity == 0) //Works well if only one with Identity = 0 , if goes thru this multiple times, fails
          {
                SchoolContext.SetAdded(s);
          }
          else
          {
                SchoolContext.SetModified(s);
          }
     });
}

results = await StudentContext.SaveChangesAsync().ConfigureAwait(false);

答案 1 :(得分:7)

In [88]: df.stack().groupby(level=0).apply(lambda x: x.unique().tolist())
Out[88]:
0       [1, 2]
1       [2, 3]
2    [5, 4, 9]
dtype: object

答案 2 :(得分:6)

让我们使用pd.unique

df.T.agg([pd.unique])

        0       1          2
unique  [1, 2]  [2, 3]  [5, 4, 9]