如何使用Python按升序对数据帧进行排序

如何使用Python按升序对数据帧进行排序,python,pandas,dataframe,date,sorting,Python,Pandas,Dataframe,Date,Sorting,我有这样一个数据帧: 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 打印列的类型(df.dtypes): 预期产出: Date Pric

我有这样一个数据帧:

        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
打印列的类型(df.dtypes):

预期产出:

        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的数据帧。当我这样做时:

df = df.sort_values(by='Date')
但即使加上升序=真或假,也不会发生任何事情

你能告诉我怎么订购这个数据框吗

如果可能的话,你能给出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)
上面有我的密码。我无法使排序方法正常工作。

sort\u values()
默认情况下按升序对数据进行排序。您对
.sort\u值感兴趣(按class='Date',升序=False)

将熊猫作为pd导入
df=pd.DataFrame(范围(10),列=['Price'])
df['Date']=[pd.to_datetime(f“2021-02-{str(x).zfill(2)}”)表示范围(1,11)内的x)
df.sort_值(按=['Date'],升序=False)

问题在于,若修改循环中的值,若原始列表并没有变化,则可以将输出分配给原始数据帧列表,如:

for i, dfs in enumerate(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)
    extracted_data_List_DataFrames[i] = dfs
另一个想法是使用
inplace=True

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.sort_values(['Date'], ascending=False, inplace=True)

否则我就不会问这个问题了。谢谢,嗯,你们有哪一个熊猫版本?以上版本适用于
1.2.2
。我有1.2.1应该适用于你的答案。它工作得很好。我在另一篇帖子上看到inplace将被弃用,是吗?@LuckyFr-是的,应该是这样,所以添加第一个选项,而不使用
inplace=True
。但它仍然被许多人(在当地)使用,所以只适用于不推荐使用的。
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.sort_values(['Date'], ascending=False, inplace=True)