簡體   English   中英

熊貓-每一列中的最小值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM