【问题标题】:I want to drop one Dataframe from another (the first df is a subset of the second)我想从另一个删除一个数据框(第一个 df 是第二个的子集)
【发布时间】:2016-12-07 15:22:42
【问题描述】:

我的目标是分析城市私立学校与农村私立学校的学费变化。

我有一个数据框,其中包含一段时间内美国所有私立学校的学费 (tuit_cost)。数据框tuit_cost 包含历史学费列以及标题为['State','City/Town Name'] 的两列。

我还有一个单独的私立学校数据框,这些学校被归类为“城市”地区 (urban_schools)。这个数据框只有两列——['State','City/Town Name']

我合并了数据框,以便创建一个仅包含城市学校历史学费数据的数据框。

urban_school_tuit = pd.merge(urban_schools, tuit_cost, how='left', left_on= ['State','City/Town Name'], right_on=['State','City/Town Name']).dropna()

现在我想通过从tuit_cost 删除urban_school_tuit 中的所有行来创建一个仅包含农村学校历史学费数据的数据框。

最有效的方法是什么?

谢谢!

【问题讨论】:

  • 你试过 dataframe.subtract 吗?此处的文档:pandas.pydata.org/pandas-docs/version/0.18.1/generated/…
  • 也对你的学习感兴趣...我有一个孩子在寄宿学校。你最终会在某个地方发布吗?
  • @mba12 -- dataframe.subtract 返回tuit_cost 的视图,该视图在urban_schools 中的所有行中具有“0.0”值,在我想在rural_schools 我要创建的数据框。关于如何选择这些行并使用它们包含在tuit_cost 中的原始数据填充它们的任何建议? (到目前为止,我还没有发布计划——如果情况发生变化,我会通知您。感谢您的关注!)
  • @3novak 我遇到的问题是索引不一样,所以我不能使用is in(正如您引用的问题中的大多数答案所建议的那样)

标签: python python-2.7 python-3.x pandas dataframe


【解决方案1】:

能够将其修补在一起以创建所需的数据帧(在 Python 3 中)...

rural_schools = tuit_cost.drop(list(zip(urban_schools['State'],urban_schools['City/Town Name'])))

欢迎任何进一步的指导或建议。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-08
    • 2014-01-30
    • 1970-01-01
    • 1970-01-01
    • 2019-06-26
    相关资源
    最近更新 更多