当前位置: 首页 > 知识库问答 >
问题:

如何从保持每个类别的第一行的数据帧中删除属性条件的行?[复制]

督弘化
2023-03-14

我有一个名为外壳的数据帧。数据帧的属性之一是“Ocean_proximity”,这是分类属性。我在数据帧上应用了median_house_value为 450k 的条件。现在,我想在每个“Ocean_proximity”类别中只保留一条记录,并删除所有其他记录。

我正在使用熊猫和蟒蛇3.0“”

>>>housing[housing.median_house_value==450000][['median_income','median_house_value','ocean_proximity']]

>>> 
     median_income  median_house_value ocean_proximity
993           6.1023            450000.0          INLAND
4265          1.7306            450000.0       <1H OCEAN
4623          0.8804            450000.0       <1H OCEAN
4676          5.8632            450000.0       <1H OCEAN
4685          3.6111            450000.0       <1H OCEAN
4717          2.7824            450000.0       <1H OCEAN
5427          2.2402            450000.0       <1H OCEAN
5506          3.6667            450000.0       <1H OCEAN
5890          4.0893            450000.0       <1H OCEAN
6555          7.7108            450000.0          INLAND
8314          2.1579            450000.0          ISLAND
8317          2.7361            450000.0          ISLAND

>>>housing
>>>  
  median_income  median_house_value ocean_proximity
993           6.1023            450000.0          INLAND
4265          1.7306            450000.0       <1H OCEAN
8317          2.7361            450000.0          ISLAND

共有2个答案

林丁雷
2023-03-14

我们可以使用 pandas 分组,并应用按海洋邻近性对行进行分组,并仅保留第一个元素。

df=housing[housing.median_house_value==450000][['median_income','median_house_value','ocean_proximity']]
housing=df.groupby('ocean_proximity').apply(lambda x: x.iloc[0])
鄢飞鸾
2023-03-14

最简单的方法是将单列传递给drop_duplicates函数

df.drop_duplicates('ocean_proximity')

        median_income   median_house_value  ocean_proximity
993     6.1023  450000.0    INLAND
4265    1.7306  450000.0    <1H_OCEAN
8314    2.1579  450000.0    ISLAND
 类似资料:
  • 问题内容: 我犯了一个错误,并且有多余的重复项。 我有一个包含4个关键字段的表。,,,。 是自动递增和主键。 的组合,而应该是唯一的,我有我之前创建唯一索引来删除重复的行。有些行有一个重复项,有些行有很多重复项。 向我显示了我需要处理的重复值。但是现在我不知道如何保留一个并删除每个重复集的其余部分。 问题答案: 备份数据,然后… MySQL在DELETE语句中支持JOIN。如果要保留第一个重复项:

  • 当日期列的值在日期列表中时,我想从熊猫数据帧中删除行。以下代码不起作用: 我得到以下错误: ValueError:序列的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all()。

  • 我有一个熊猫DataFrame,它已经按日期排序,但我需要序列化这个DataFrame到一个保持行顺序的命令python结构,以便我以后可以返回一个JSON。 我使用一个dict,其中我有一些键和值,我需要数据帧作为一个值。我用pd。但这并不能保持行的顺序。 我尝试使用OrderedDict,但无法用json序列化。转储()。我正在使用python 2.7。 这是datraframe数据,我试图将

  • 我有一个相当大的数据帧(几百列),我想对它执行以下操作。我在下面用一个玩具数据框和一个简单的条件来说明我需要什么。 对于每一行:条件#1:检查其中两列的值是否为零(0)。如果这是真的,请保留该行并继续下一行。如果任一列的值为零(0),则条件为真。 如果条件#1为False(第1列或第4列中没有零),请检查行中所有剩余的列。如果任何剩余列的值为零,则删除该行。 我希望过滤后的数据帧作为一个新的、独立

  • 我有一个熊猫数据框,看起来像这样。 我想确定猫和蝙蝠是重复的相同值,因此想删除一条记录,只保留第一条记录。所得到的数据帧应该只具有。