英文:
Percent change of dataframe
问题
我有一个类似这样的DataFrame
:
Date Close Symbol
0 2018-03-05 44.21 AAPL
1 2018-03-06 44.17 AAPL
2 2018-03-07 43.76 AAPL
3 2018-03-08 44.24 AAPL
4 2018-03-09 44.99 AAPL
5 2018-03-12 45.43 AAPL
6 2018-03-13 44.99 AAPL
7 2018-03-14 44.61 AAPL
8 2018-03-15 44.66 AAPL
9 2018-03-16 44.51 AAPL
...
2506 2023-02-16 50.99 CSCO
2507 2023-02-17 50.77 CSCO
2508 2023-02-21 49.69 CSCO
2509 2023-02-22 49.31 CSCO
2510 2023-02-23 49.21 CSCO
2511 2023-02-24 48.48 CSCO
2512 2023-02-27 48.73 CSCO
2513 2023-02-28 48.42 CSCO
2514 2023-03-01 48.34 CSCO
2515 2023-03-02 48.53 CSCO
我需要计算每个Symbol
的每日百分比变化
,将Close
列替换为该值,然后以Date Close Symbol
的格式呈现结果。
我尝试过使用groupby
,参考这个帖子,但我无法使它完全工作。
英文:
I have a DataFrame
like this:
Date Close Symbol
0 2018-03-05 44.21 AAPL
1 2018-03-06 44.17 AAPL
2 2018-03-07 43.76 AAPL
3 2018-03-08 44.24 AAPL
4 2018-03-09 44.99 AAPL
5 2018-03-12 45.43 AAPL
6 2018-03-13 44.99 AAPL
7 2018-03-14 44.61 AAPL
8 2018-03-15 44.66 AAPL
9 2018-03-16 44.51 AAPL
...
2506 2023-02-16 50.99 CSCO
2507 2023-02-17 50.77 CSCO
2508 2023-02-21 49.69 CSCO
2509 2023-02-22 49.31 CSCO
2510 2023-02-23 49.21 CSCO
2511 2023-02-24 48.48 CSCO
2512 2023-02-27 48.73 CSCO
2513 2023-02-28 48.42 CSCO
2514 2023-03-01 48.34 CSCO
2515 2023-03-02 48.53 CSCO
I need to take the daily percent change
of each Symbol
, replace the Close
column
with that value, and then bring back the result in this Date Close Symbol
format.
I have tried groupby
following this post, but I can't quite get it to work.
答案1
得分: 1
如果可能的话,我建议您为百分比变化使用一个新的列名。将其命名为Close
会让事情变得相当混乱。
您可以尝试这样做:
# 或 df["Close"] = ...
df["Change"] = df.groupby("Symbol")["Close"].pct_change()
英文:
If possible, I suggest that you use a new column name for the percentage change. Naming it Close
makes things rather confusing.
You can try this:
# or df["Close"] = ...
df["Change"] = df.groupby("Symbol")["Close"].pct_change()
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论