簡體   English   中英

Pandas:如何按一列的日期對數據框行進行排序

[英]Pandas: How to sort dataframe rows by date of one column

所以我有兩個不同的數據框架,我連接了兩個。 所有列都相同; 但是,日期列具有M / D / YR格式的各種不同日期。

在此輸入圖像描述 數據幀日期在序列中稍后變得混亂

有沒有辦法保留整個數據框本身,只是根據日期列中的日期對行進行排序。 我還想保留日期所在的格式。

所以基本上

date        people
6/8/2015    1
7/10/2018   2
6/5/2015    0

轉換成:

date          people
6/5/2015      0
6/8/2015      1
7/10/2018     2

謝謝!

PS:我已經嘗試了其他帖子中的選項,但它不起作用

試着詳細說明可以做什么:初始化/合並數據幀並將列轉換為datetime類型

df= pd.DataFrame({'people':[1,2,0],'date': ['6/8/2015','7/10/2018','6/5/2015',]})
df.date=pd.to_datetime(df.date,format="%m/%d/%Y")
print(df)

輸出:

   date      people
0   2015-06-08  1
1   2018-07-10  2
2   2015-06-05  0

按日期排序

df=df.sort_values('date')
print(df)

輸出:

    date    people
2   2015-06-05  0
0   2015-06-08  1
1   2018-07-10  2

再次維護格式:

df['date']=df['date'].dt.strftime('%m/%d/%Y')
print(df)

輸出:

    date    people
2   06/05/2015  0
0   06/08/2015  1
1   07/10/2018  2

嘗試將“日期”列更改為pandas Datetime,然后排序

import pandas as pd
df= pd.DataFrame({'people':[1,1,1,2],'date': 
['4/12/1961','5/5/1961','7/21/1961','8/6/1961']})
df['date'] =pd.to_datetime(df.date)
df.sort_values(by='date')

輸出:

date       people

1961-04-12  1

1961-05-05  1

1961-07-21  1

1961-08-06  2

要獲取初始格式:

df['date']=df['date'].dt.strftime('%m/%d/%y')

輸出:

date    people
04/12/61    1

05/05/61    1

07/21/61    1

08/06/61    2

不知道你想要什么得到,但如果你只是想誰屬於一個 約會,只是簡單地使用groupby

df = df.groupby('date').sum()

或者不同的組合

df = df.groupby('date').agg(lambda col: col.tolist()).reset_index()

然后你可以根據需要對其進行排序。 也許這將是你想要的按日期排序Pandas Dataframe

為什么不簡單?

dataset[SortBy["date"]]

你可以提供你嘗試過的東西或你的結構如何?

如果您需要按相反順序排序,請執行以下操作:

dataset[SortBy["date"]][Reverse]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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