我想创建一个新的数据帧,它是用于分析的较大数据帧的子集。 具体来说,我想从较大的数据帧中返回数据帧中所有名称的最新日期。
如果我的数据帧如下:
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