【问题标题】:Optimal way to iterate full pandas DataFrame迭代完整 pandas DataFrame 的最佳方法
【发布时间】:2019-01-13 12:33:32
【问题描述】:

我有一个股票 CSV,我想添加一个以百分比表示的列。

例如:

原始 csv:

Date; Price;
Jan; 60.1;
Feb; 59.4;
Mar; 65.9;

而我想要的是创建一个新的 pandas DataFrame 列,包括 % 的变化,例如:

Date; Price; Change %;
Jan; 60.1;1.18;
Feb; 59.4;-9.86;
Mar; 65.9;;

在其他语言中,我通常会通过使用 FOR 循环迭代数据来执行此操作,使用 FOR 索引来选择所需的行。类似“更改[i]=((Price[i]/Price[i-1])-1)*100” 但我的问题是; 有什么方法可以更简单、更优化地做到这一点吗?像 R 中的 Apply() 函数一样?

您好!

【问题讨论】:

  • 你试过pct_change()函数吗?

标签: python pandas dataframe iteration


【解决方案1】:

Pandas 有一个 DataFrame 方法可以做到这一点:https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.pct_change.html(如果你想乘以 100)。

或者,您可以使用 DataFrame.shift() 并执行以下操作:

df['Change_pct'] = df['Price']/df['Price'].shift(1)*100

【讨论】:

    猜你喜欢
    • 2020-10-05
    • 2019-04-10
    • 2017-11-28
    • 1970-01-01
    • 1970-01-01
    • 2019-03-19
    • 2020-01-03
    • 2021-12-28
    • 1970-01-01
    相关资源
    最近更新 更多