如何在COL2
中按不同的值获取行?
例如,我有下面的数据框:
COL1 COL2
a.com 22
b.com 45
c.com 34
e.com 45
f.com 56
g.com 22
h.com 45
我想根据 COL2
中的唯一值获取行:
COL1 COL2
a.com 22
b.com 45
c.com 34
f.com 56
那么,我怎样才能得到呢?如果有人可以提供任何帮助,我将不胜感激。
您可以将Groupby
与第一个
和最后一个
方法结合使用。要从每个组中获取第一行:
df.groupby('COL2', as_index=False).first()
输出:
COL2 COL1
0 22 a.com
1 34 c.com
2 45 b.com
3 56 f.com
要从每个组中获取最后一行:
df.groupby('COL2', as_index=False).last()
输出:
COL2 COL1
0 22 g.com
1 34 c.com
2 45 h.com
3 56 f.com
使用drop_duplicates
为检查重复项指定列 COL2
:
df = df.drop_duplicates('COL2')
#same as
#df = df.drop_duplicates('COL2', keep='first')
print (df)
COL1 COL2
0 a.com 22
1 b.com 45
2 c.com 34
4 f.com 56
您也可以只保留最后的值:
df = df.drop_duplicates('COL2', keep='last')
print (df)
COL1 COL2
2 c.com 34
4 f.com 56
5 g.com 22
6 h.com 45
或删除所有重复项:
df = df.drop_duplicates('COL2', keep=False)
print (df)
COL1 COL2
2 c.com 34
4 f.com 56
我根据列生成了一个唯一的值,但我想得到的结果是来自不同列的转换值。下面是代码供您参考: 获取唯一值 预期结果:
问题内容: 我有交易数据框。每行代表两个项目的交易(可想而知,就像两张事件票之类的交易一样)。我想根据售出的数量重复每一行。 这是示例代码: 这将产生一个看起来像这样的数据框 因此,在上述情况下,每一行将转换为两个重复的行。如果“数量”列为3,则该行将转换为三个重复的行。 问题答案: 首先,我使用整数而不是文本重新创建了您的数据。我还更改了数量,以便可以更轻松地理解问题。 我通过使用嵌套列表理解结
问题内容: 我有一张桌子叫: 每个都与一个不同的表相关,field的值指定了我要用于该表的表的名称。所有目标表都有几个相似的列: 当前,我正在使用此查询来选择通知,通知它们在目标表中存在相关行,并且其字段为: 但是由于它是a ,如果它与任何表都不匹配,它将返回通知,我该如何重写它,以便它不返回与目标表中的任何行都不匹配的通知?我也尝试了不成功的声明。 问题答案: 我不是100%肯定语法正确,并且现
我有以下表在PostgreSQL 11. 我想得到具有col1,col2,col3和col4的不同值的行,如果col1,col2,col3相同,则取col1的第一个值。 期望的输出是: 我试着回答以下问题。 如何将输出限制为每col2,col3.获得一个col1值。。例如,选择col1值:3876,不包括3924。
问题内容: 我正在尝试根据多个条件来计算不同的值。 下面包括样本数据练习。 可以在多个测试中找到给定的错误,对于同一测试(例如:6)可以找到多次,或者两者(例如:5)都可以找到。 以下查询可以很好地准确交付“ Total Bugs” 我的研究使我对以下查询产生了变化。 他们错过了独特的错误,因此对于“打开错误”列返回错误的结果(显示在查询下方) 当然,我的最终结果必须在一个表中同时提供两个计数列(
我有这个实体(为简洁起见省略注释): 我必须得到一个不同的值的列表为一个特定的 在我的JpaRepository中我有以下内容: 如果没有注释,则返回ID,而不是值。生成的SQL如下所示: 但我需要的是不同的类别,而不是产品实体。除此之外,我在上面添加了注释。但现在我得到了这个错误: 但是我不能将添加到结果列表中,因为这会使无效,因为是主键。 所以我要么需要一个合适的方法名来自动生成查询,要么需要