![](/img/trans.png)
[英]Pandas - How to dynamically get min and max value of each session in the column
[英]Pandas - min of a column for each value in other
我有一个CSV文件,如下所示:
Date, Name
2015-01-01 16:30:00.0, John
2015-02-11 16:30:00.0, Doe
2015-03-01 16:30:00.0, Sam
2015-03-05 16:30:00.0, Sam
2015-04-21 16:30:00.0, Chris
2015-05-07 16:30:00.0, John
2015-06-08 16:30:00.0, Doe
您会看到同一名称在多个日期重复出现。 我想知道每个唯一名称的日期列中的最大日期是多少。 如果您对Python有所了解,如何使用Pandas或其他解决方案来做到这一点?
我想要这样的结果:
Name, Max date(or latest)
John, 2015-01-01 16:30:00.0
Doe, 2015-01-01 16:30:00.0
Sam, 2015-01-01 16:30:00.0
Chris, 2015-01-01 16:30:00.0
你想干什么DataFrame.groupby()
然后就可以调用- .max()
/ .min()
取决于你想要什么)。 范例-
df.groupby('Name').max()
您还需要确保当你在阅读的CSV,您解析'Date'
列日期时间,使用dtype
的参数.read_csv()
方法(如在下面的例子中给出)。
范例/演示(针对您在问题中的csv范例)-
In [12]: df = pd.read_csv('a.csv',dtype={'Date':pd.datetime,'Name':str})
In [13]: df
Out[13]:
Date Name
0 2015-01-01 16:30:00.0 John
1 2015-02-11 16:30:00.0 Doe
2 2015-03-01 16:30:00.0 Sam
3 2015-03-05 16:30:00.0 Sam
4 2015-04-21 16:30:00.0 Chris
5 2015-05-07 16:30:00.0 John
6 2015-06-08 16:30:00.0 Doe
In [15]: df.groupby(['Name']).max()
Out[15]:
Date
Name
Chris 2015-04-21 16:30:00.0
Doe 2015-06-08 16:30:00.0
John 2015-05-07 16:30:00.0
Sam 2015-03-05 16:30:00.0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.