我有一个示例数据集,如下所示
Col1 Col2 Col3
A 1,2,3 A123
A 4,5 A456
A 1,2,3 A456
A 4,5 A123
我参考了一些解决方案,并尝试了以下方法。但它只追加单个列。
df.groupby(df.columns.difference(['Col3']).tolist())\
.Col3.apply(pd.Series.unique).reset_index()
使用字符串连接方法删除具有子集Col1和3
groupby Col1
的重复项,然后聚合
(df.drop_duplicates(['Col1','Col3'])
.groupby('Col1')
.agg(Col2 = ('Col2',lambda x: x.str.cat(sep=',')),
Col3 = ('Col3', lambda x: x.str.cat(sep=','))
)
.reset_index()
)
Col1 Col2 Col3
0 A 1,2,3,4,5 A123,A456
问题内容: 我正在尝试将具有相同ID但具有不同列值的不同行合并为一个。 例如 : 我希望将其结合起来,这样结果是: 或者 或上述内容的任何其他变体,以使行以某种方式连接在一起。 任何帮助,将不胜感激!提前致谢。 问题答案: 请先阅读我的评论-除非仅用于报告目的,否则您甚至都不要考虑这样做,并且您想了解如何在普通SQL中做到这一点(而不是使用报告的正确解决方案)工具)。 第二种格式最简单,特别是如果
问题内容: 我试图找到具有重复值,但仅基于选定的列数,而不是单个列或整个行的行。例如,如果我的表如下所示: 我的问题是: 查找行的“地址和状态”字段与另一行的“地址和状态”字段匹配的行的所有ID。 该查询的答案将是: 有任何想法吗? 意见建议: 如何从单个表中选择同一行中的多列值 问题答案: 请尝试以下方法:
我想合并基于多个条件的2个数据帧。 DF1是主表,DF2被视为查找表 如果DF1的col1和col2与DF2的col1和col2匹配,且DF1的“值”介于DF2的最小值和最大值之间,则DF2的“数据”列将添加到DF1中。如果不满足条件,DF1的“数据”值为NA。 预期输出(前6行): 我尝试使用合并(匹配col1和col2)和子集(只过滤值介于最小和最大之间的行),但我的目标是维护DF1的所有行。
问题内容: 我有一张桌子,像这样: 我想选择具有相同基因座和染色体的所有行。例如,第3行和第4行。一次可能有2个以上,并且它们可能不是按顺序排列的。 我尝试了这个: 但是,即使重复,它总是返回第3行,从不返回第4行。我想我缺少明显而简单的东西,但我茫然。 有人可以帮忙吗? 问题答案: 您需要了解,当您在查询中包含内容时,您是在告诉SQL合并行。您将为每个唯一值获得一行。在随后过滤这些组。通常,您可
我有两个哈希要合并。它们看起来像这样: 第二个散列看起来像: 我想合并这两个散列数组,结果如下所示: 有没有一种简单的方法来合并这两个哈希,或者我必须逐个遍历哈希并在另一个哈希中找到该键?
我有一个类似下面的数据帧,其中所有ID都是唯一的,列a、B和C的值都在0和1之间。 我想只保留A、B和C的前n个值,这样对于n=2,数据帧看起来如下: 做df.set_index('ID')['A']. n最大(2).reset_index()给我: 有没有比三次合并数据集更简单的方法?