我有一个数据框,有两列ID和Salary
data = {'ID':[1,2,3,4,2],'salary':[1e3,1.2e3,1e3,2e3,1.5e3]}
+----+--------+
| ID | salary |
+----+--------+
| 1 | 1000.0 |
+----+--------+
| 2 | 1200.0 |
+----+--------+
| 3 | 1000.0 |
+----+--------+
| 4 | 2000.0 |
+----+--------+
| 2 | 1500.0 |
+----+--------+
在此数据帧中,某些ID被复制,在这种情况下,ID=2。我想为每个重复的ID保留最高的薪水。
+----+--------+
| ID | salary |
+----+--------+
| 1 | 1000.0 |
+----+--------+
| 2 | 1500.0 |
+----+--------+
| 3 | 1000.0 |
+----+--------+
| 4 | 2000.0 |
+----+--------+
对于具有两列以上的数据帧,一种更通用的解决方案,您希望所有行都具有每个id的最大薪资。
data = {'ID':[1,2,3,4,2],'salary':[1e3,1.2e3,1e3,2e3,1.5e3]}
df = pd.DataFrame(data).assign(more_data=range(5))
df.loc[df.groupby('ID').salary.idxmax()]
ID salary more_data
0 1 1000.0 0
4 2 1500.0 4
2 3 1000.0 2
3 4 2000.0 3
这个问题与Python是重复的:使用groupby获取组中具有最大值的行
这是一条单行线:
df.groupby('ID', sort=False)['salary'].max()
这里还有一个:
df.sort_values('salary', ascending=False).drop_duplicates(['ID'])
您可以对'ID'
执行分组,并获取最大值:
df = df.groupby('ID', as_index=False)['salary'].max()
由此产生的产出:
ID salary
0 1 1000.0
1 2 1500.0
2 3 1000.0
3 4 2000.0
我有一个这样的数据帧(): 我想基本上删除重复记录,以便字段是唯一的。我不关心被丢弃的记录,在这种情况下,地址已经被删除,所以唯一通过的是拼写错误。我想要以下结果的数据框: 在R中,基本上是这样做的: 但是我需要一种方法在熊猫身上做到这一点。
我有一个这样的专栏: 我希望专栏看起来像这样: 只希望保留重复记录的第一个或最后一个。 目前,我使用的是: 但它不起作用。我错过了什么吗?
我有两张桌子——桌子1和桌子2。 它们有相同的列——Col1、Col2、Col3、Col4(整数)。 我将Table_2行插入Table_1。 表_1和表_2有一些基于Col1和Col2的重复值。我需要保留表_2的值,并删除表_1的重复值。 例如: 我尝试了以下方法-
当日期列的值在日期列表中时,我想从熊猫数据帧中删除行。以下代码不起作用: 我得到以下错误: ValueError:序列的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all()。
我有一个数据集,我想根据该行的2或列值从数据框中删除行。例如-我有关于美国所有电视节目的数据帧,我需要根据电视节目的季节和剧集删除电视节目的特定行。就像我需要删除高谭市电视台的行,但只删除包含第四季和第十集的行。 如果我能在这方面得到帮助,我将不胜感激。
问题内容: 我有一个像这样的json数据: 从中,我必须使用删除一个重复的条目,与情况相同, 结果如下: 怎么可能 问题答案: