我有一个这样的dataframe:
Date Price
0 2021-02-12 00:00:00 50
1 2021-02-11 00:00:00 2
2 2021-02-10 00:00:00 40.4
3 2021-02-09 00:00:00 775.6
4 2021-02-08 00:00:00 1000.2
5 2021-02-07 00:00:00 500
具有print(df.dtypes)的列类型:
Date datetime64[ns]
Price float64
预期输出:
Date Price
0 2021-02-07 00:00:00 500
1 2021-02-08 00:00:00 1000.2
2 2021-02-09 00:00:00 775.6
3 2021-02-10 00:00:00 40.4
4 2021-02-11 00:00:00 2
5 2021-02-12 00:00:00 50
我有一个类似df的 Dataframe 。当我这样做:
df = df.sort_values(by='Date')
但是,即使添加升序= True或False也不会发生任何事情。
你能给予订购上述数据框的方法吗?
如果可能的话,你能给予2个可能性,如按索引和日期排序,但我期待着直接按升序排序的日期,而不触及索引。
编辑以更清晰:
# Converted list of dictionaries to a Dataframe
extracted_data_List_DataFrames = [pd.DataFrame(x) for x in extracted_data_List]
# Convert string to their respectiv types
for dfs in extracted_data_List_DataFrames:
dfs['Date'] = pd.to_datetime(dfs['Date'])
dfs['Price'] = dfs['Price'].astype('float64')
# Sort dataframes by 'Date'
dfs = dfs.sort_values(['Date'], ascending=False)
print(extracted_data_List_DataFrames)
上面有我的代码。我无法使排序方法正确工作。
2条答案
按热度按时间rqqzpn5f1#
问题是如果在循环中修改值,如果原始列表没有变化,您可以将输出分配给原始的DataFrames列表,如:
另一个想法是使用
inplace=True
:ogsagwnx2#
sort_values()
默认情况下按升序对数据进行排序。您对.sort_values(by='Date', ascending=False)
感兴趣: