【发布时间】:2020-01-22 04:10:04
【问题描述】:
我有两个数据框:
df_one:
person city year col_x
ah bos 1998
bc bos 1996
dm ny 2001
hh la 1999
df_two:
person city range_a range_b
mk bos 1995 2004
kk bos 2004 2017
ab ny 1977 2019
fc dc 2001 2005
cc dc 2006 2019
et la 1995 2005
tr mia 1997 2006
我想用基于 df_one 和 df_two 中条件的值填充 df_one、col_x。您将从 df_one 获取城市,从 df_two 匹配城市,并根据 df_one 上的年份在 df_two 范围之间的位置 - 您可以将 df_two 上的人放入 df_one 上的 col_x 中。
示例:df_one 中第一行的“ah” - 城市为 bos,年份为 1998 - 因此该行的 col_x 将是 mk,因为城市匹配且 1998 介于 1995 年和 2004 年之间。
我不太确定从 pandas 开始。我相信它可能是某种具有两个值的嵌套字典,但不确定这是否可能。
【问题讨论】:
-
我真的不知道在 pandas 上从哪里开始 然后阅读 Pandas 文档。
-
按照您在 df_one 的最后一行中提到的“la”的条件,1999 年可能落在 df_two 的两个位置 - 因此可以选择“et”和“tr”。请说明您希望如何在多个值之间进行选择。是要取第一个值还是最后一个值?
-
我认为您需要更清楚地解释您的目标。您在标题中提到您只想在两个键匹配时才检索一个值,然后谈论在键位于其他两个值之间的情况下找到一个值?
-
@instinct246 我将我的 OP 编辑得更具体,还修复了数据的拼写错误 - 但是是的,您正在使用“人”列中的数据填充缺失列中的数据
-
@BrettJeffreson 澄清一下 - 当城市匹配并且年份介于范围之间时,您将使用 df_two 的人员列中的值填充 col_x 上的单元格
标签: python dataframe dictionary