首页 > 解决方案 > 如何反转我的DataFrame(第一个值->最后一个值,最后一个值->第一个值)

问题描述

我正在尝试翻转(第一个值成为最后一个值,最后一个值成为第一个值)我的 DataFrame 中的日期列,.iloc[:,::-1]但它似乎没有工作。这是示例代码:

# Clients's Data
file_name = '/Users/x/Desktop/CharlesSchwab.Client.PV.csv'
Client_data = pd.read_csv(file_name)

# Date Info
Client_data['Date'] = pd.to_datetime(Client_data['Date'])
Dates = pd.date_range(min(Client_data["Date"]), max(Client_data["Date"]))
df_Dates = pd.DataFrame(Dates).iloc[:,::-1]
df_Dates.columns = ['Dates']

# Personal Value Info
PV = pd.DataFrame(Client_data["Personal_Value"].str.replace('$','').str.replace(',','').astype(float))

# Adding updated, workable columns back together 
Client1_Data = pd.concat([df_Dates, Personal_Value], axis=1)

# Outputs
Client1_Data

这就是我得到的:

  | Dates      | Personal Value
----------------------
0 | 2018-08-05 | $$$$$$$$$
-------------------------
1 | 2018-08-06 | $$$$$$$$$
-------------------------
2 | 2018-08-07 | $$$$$$$$$
-------------------------
3 | 2018-08-08 | $$$$$$$$$
-------------------------
4 | 2018-08-09 | $$$$$$$$$
-------------------------

这就是我想要得到的:

  | Dates      | Personal Value
-------------------------------
0 | 2020-08-05 | $$$$$$$$$
-------------------------
1 | 2020-08-06 | $$$$$$$$$
-------------------------
2 | 2020-08-07 | $$$$$$$$$
-------------------------
3 | 2020-08-08 | $$$$$$$$$
-------------------------
4 | 2020-08-09 | $$$$$$$$$
-------------------------

一些注意数据集Client_data,有 2 列(都有 732 个值),日期范围从 2018 年 8 月到 2020 年 8 月。

.iloc[:, ::-1]在 Personal Value 列中尝试了相同的代码,但发生了同样的事情 - 没有。代码执行没有任何错误,它只是提供了不正确的数据组合。任何帮助将不胜感激 - 谢谢!

标签: pythonpandasfinance

解决方案


也许PV.sort_values("Dates", ascending=False)会给你你需要的东西?:)


推荐阅读