如何根据记录条件获取包含记录子集的数据帧



我想创建一个新的数据帧,它是用于分析的较大数据帧的子集。 具体来说,我想从较大的数据帧中返回数据帧中所有名称的最新日期。

如果我的数据帧如下:

Row Name Date  
1 Apples 2020-05-01 
2 Apples 2020-05-11
3 Apples 2020-05-21
4 Bananas 2020-05-11
5 Bananas 2020-05-21
6 Bananas 2020-05-31

我想返回以下内容:

3 A 2020-05-21
6 B 2020-05-31

我想伪代码是这样的:

df(new) = df(old)[df.Date == {most recent date for each name}]

对此或其他较长的代码将记录/字段子查询到较小的数据帧中的任何帮助将不胜感激。

如果需要进一步澄清,请告诉我。 谢谢你的时间。

您可以使用以下方法实现它:

# convert the date column to datetime
df['Date'] = pd.to_datetime(df['Date'])

# create a new dataframe with only the columns  
df1 = df.groupby('Name')['Date'].max().reset_index()

要获取最新值,您可以使用df.groupby().last()

print(df)
Name        Date
0   Apple  2020-05-01
1   Apple  2020-05-11
2   Apple  2020-05-21
3  Banana  2020-05-11
4  Banana  2020-05-21
5  Banana  2020-05-31
df.groupby("Name").last()

输出


Name          Date    
Apple   2020-05-21
Banana  2020-05-31

最新更新