python - 根据一列中与 Pandas 另一列中的引用日期最接近的日期选择行?

标签 python pandas date datetime

我有一个 pandas 数据框,其中包含开始日期和测量日期。

   Start Date  change   Individual    measured_date 
0  2004-11-23    3341        Bob       2007-07-26   
1  2006-06-29    3398        Bob       2007-07-26   
2  1997-07-21    2277       Greg       2005-04-21   
3  2000-04-11    3380      Nancy       2005-10-14   
4  2000-04-11    3380      Nancy       2007-06-28   
5  2005-03-29    3115      Nancy       2005-10-14   
6  2005-03-29    3115      Nancy       2007-06-28   
7  2005-10-15    4294      Nancy       2007-06-28   
8  2007-03-16    2163      Nancy       2007-06-28   
9  2006-02-18    2299       Jose       2009-12-23   
10 2008-11-16    1983       Jose       2009-12-23   
11 2009-04-07    2112       Jose       2009-12-23   
12 2009-11-14    2036       Jose       2009-12-23   
13 2009-11-24    2556       Jose       2009-12-23   

我想根据“个人”列选择开始时间和测量时间之间时间最短的行。我创建了一个“diff”列用于查看目的。例如,该数据框应过滤为

StartDate   change  Individual measured_date     diff
6/29/2006   3398    Bob        7/26/2007         392 days 00:00:00.000000000
7/21/1997   2277    Greg       4/21/2005         2831 days 00:00:00.000000000
3/16/2007   2163    Nancy      6/28/2007         104 days 00:00:00.000000000
11/24/2009  2556    Jose       12/23/2009        29 days 00:00:00.000000000`

最佳答案

使用sort_values然后我们drop_duplicates

df.sort_values('diff',ascending=False).drop_duplicates('Individual')

关于python - 根据一列中与 Pandas 另一列中的引用日期最接近的日期选择行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51093640/

相关文章:

javascript - 有关如何将日期输入值与最小/最大日期范围进行比较的建议

python - 在 Python 中创建空格分隔的文件

python - 写入大量数据时 CSV 文件为空

python - 如何在Python中读取多个nltk语料库文件并写入单个文本文件

python - 如何将多个值写入文本文件中的一行

php - 我想显示时间间隔的时间拾取

python - Pandas - 将列子集行与主列中的匹配值对齐

python - pandas - 数据框列值的线性回归

python - 如何根据另一列中的值是否包含在另一个数据帧的特定列中来设置一个数据帧的列值

mysql - SQL日期格式转换? [dd.mm.yy 到 YYYY-MM-DD]