【问题标题】:Need help doing analysis on a stock data set需要帮助对股票数据集进行分析
【发布时间】:2019-07-18 02:14:02
【问题描述】:

我创建了一个股票信息数据框,例如“开盘价”、“最高价”、“收盘价”等。我现在需要计算股票每根柱线的表现(dataFrame 中的每一行)。我想在 dataFrame 中创建一个新列,该列等于下一行的“Close”列 - 上一行的“Close”列值。

  • 单个柱的表现是下一根柱的收盘价减去当前柱的收盘价

我尝试按每 2 行拆分关闭列的值,并将这个新的关闭列值放入它自己的列中。然后创建一个新列,用第一列减去第二列,但是它们是处理 NaN 值的问题。

df['performance'] = df.Close[2] - df.Close[1]

这使得 52767 行中每一行的性能等于“2.5”。

我想创建一个“性能”列来迭代。例如,如果第 0 行的收盘值为 5,而第 1 行的收盘值为 7,则第 0 行的性能值应为 2,这是针对 52767 行进行的。

【问题讨论】:

    标签: python pandas numpy


    【解决方案1】:

    pandas.Series.diff()

    您可以使用.diff()-1 来计算与后续行的差异(与与前一行差异的正常行为相反)。例如:

    # Example data
    df = pd.read_csv("https://vincentarelbundock.github.io/Rdatasets/csv/fpp2/goog200.csv", index_col=0).head(10)
    
    # Calculate difference
    df['performance'] = df['value'].diff(-1)
    

    产量

        time       value  performance
    1      1  392.830017     0.317932
    2      2  392.512085    -4.793823
    3      3  397.305908    -0.705414
    4      4  398.011322    -2.478882
    5      5  400.490204    -7.605530
    6      6  408.095734    -8.494751
    7      7  416.590485     3.586670
    8      8  413.003815    -0.606048
    9      9  413.609863     0.536499
    10    10  413.073364          NaN
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-15
      • 2011-03-04
      • 1970-01-01
      • 2014-04-09
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 2014-04-23
      相关资源
      最近更新 更多