【问题标题】:return the miaximum date for each stock name in a pandas dataframe返回熊猫数据框中每个股票名称的最小日期
【发布时间】:2015-10-05 05:32:17
【问题描述】:

我正在尝试应用一个函数来返回股票的最新或最大日期(我已经收集了多天的价格)。

我将使用这个最大或最迟日期去收集更多价格。

我的数据框目前采用以下形式:

in: df.head()
columns: index(date) | stock_name
2015-10-01              A
2015-10-02              A
2015-10-05              B
2015-10-08              B

def max(x):
return x.idxmax()

df["stock_name"].apply(max)
out:
A 2015-10-02
B 2015-10-08

【问题讨论】:

  • 那么你的问题是什么?
  • @AnandSKumar 我无法找出正确的语法来返回每个股票名称的最大日期?
  • df.groupby('stock_name')['date'].max() 可能是?

标签: python pandas apply series


【解决方案1】:

您需要做的是DataFrame.groupby() 根据'stock_name' 字段进行分组。但是要获得最大值,您可能首先需要重置索引(如果日期是索引,如果不是,请不要在下面的代码中执行 reset_index() 并使用日期列的列名)。示例 -

df.reset_index().groupby('stock_name')['index'].max()  #Use `'date'` instead of `'index'` if the name of `index` is `'date'` .

演示 -

In [27]: df
Out[27]:
           stock_name
2015-10-01          A
2015-10-02          A
2015-10-05          B
2015-10-08          B

In [28]: df.reset_index().groupby('stock_name')['index'].max()
Out[28]:
stock_name
A    2015-10-02
B    2015-10-08
Name: index, dtype: object

【讨论】:

    猜你喜欢
    • 2018-08-01
    • 1970-01-01
    • 2015-03-23
    • 1970-01-01
    • 2014-06-04
    • 1970-01-01
    • 2011-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多