如何从 Pandas 数据帧中的引用中提取值,然后将帧“上升”到另一个指定值?

镇定

我有以下玩具数据集:

import pandas as pd
from StringIO import StringIO

# read the data
df = pd.read_csv(StringIO("""
    Date         Return
    1/28/2009   -0.825148
    1/29/2009   -0.859997
    1/30/2009   0.000000
    2/2/2009    -0.909546
    2/3/2009    0.000000
    2/4/2009    -0.899110
    2/5/2009    -0.866104
    2/6/2009    0.000000
    2/9/2009    -0.830099
    2/10/2009   -0.885111
    2/11/2009   -0.878320
    2/12/2009   -0.881853
    2/13/2009   -0.884432
    2/17/2009   -0.947781
    2/18/2009   -0.966414
    2/19/2009   -1.016344
    2/20/2009   -1.029667
    2/23/2009   -1.087432
    2/24/2009   -1.050808
    2/25/2009   -1.089594
    2/26/2009   -1.121556
    2/27/2009   -1.105873
    3/2/2009    -1.205019
    3/3/2009    -1.191488
    3/4/2009    -1.059311
    3/5/2009    -1.135962
    3/6/2009    -1.147031
    3/9/2009    -1.117328
    3/10/2009   -1.009050"""), sep="\s+").reset_index()

我的目标是:

a) 在“返回”列中找到最负的值

b) 找到这个值发生的日期

c) 然后“向上走”“返回”列以查找第一个实例的特定值(在本例中为 0.000000)。

d) 找到与步骤“c”中返回的值相关联的日期

我正在寻找的结果是:

a) -1.20519

b) 2009 年 3 月 2 日

c) 0.000000

d) 2009 年 2 月 6 日

我可以使用以下代码找到“a”:

max_dd = df['Maximum_Drawdown'].min()

为了获得“b”,我尝试使用以下代码:

df.loc[df['Return'] == max_dd, 'Date']

但是,错误消息说:

KeyError: 'Date'

注意:我可以让“b”在这个玩具示例中工作,但实际数据会抛出错误消息。以下是用于从 csv 文件导入数据的实际代码:

df = pd.read_csv(FILE_NAME, parse_dates=True).reset_index()

df.set_index('Date', inplace = True)  <<--- this is causing the problem
芬尼奥尼

为了解决您的所有问题,您的代码可以编写如下:

import pandas as pd
from io import StringIO

# read the data
df = pd.read_csv(StringIO("""
    Date         Return
    1/28/2009   -0.825148
    1/29/2009   -0.859997
    1/30/2009   0.000000
    2/2/2009    -0.909546
    2/3/2009    0.000000
    2/4/2009    -0.899110
    2/5/2009    -0.866104
    2/6/2009    0.000000
    2/9/2009    -0.830099
    2/10/2009   -0.885111
    2/11/2009   -0.878320
    2/12/2009   -0.881853
    2/13/2009   -0.884432
    2/17/2009   -0.947781
    2/18/2009   -0.966414
    2/19/2009   -1.016344
    2/20/2009   -1.029667
    2/23/2009   -1.087432
    2/24/2009   -1.050808
    2/25/2009   -1.089594
    2/26/2009   -1.121556
    2/27/2009   -1.105873
    3/2/2009    -1.205019
    3/3/2009    -1.191488
    3/4/2009    -1.059311
    3/5/2009    -1.135962
    3/6/2009    -1.147031
    3/9/2009    -1.117328
    3/10/2009   -1.009050"""), sep="\s+").reset_index()

# a) find the most negative value in the "Return" column
min_value = df["Return"].min()
print("The minimum value in the dataset is: {}".format(min_value))

# b) find the date that this minimum value occurred at
min_value_date = df.iloc[df["Return"].idxmin(), :]["Date"]
print("The minimum value in the dataset occurred on: {}".format(min_value_date))

# c) find the first instance of a specified value in the dataset closest to this
# minimum value with an index less than the minimum value index
found_value = 0
found_indices = df.index[df["Return"] == found_value].tolist()
found_correct_index = -1
for index in found_indices:
    if index > df["Return"].idxmin():
        break
    previous_index = index

found_correct_index = previous_index
try:
    print("The value searched for is {0} and it is found in the index of {1}.".format(found_value, found_correct_index))
except:
    print("The value searched for of {0} was not found in the dataset.".format(found_value))

# d) find the date associated with that value
found_value_date = df.iloc[found_correct_index, :]["Date"]
print("The date associated with that found value of {0} is {1}.".format(found_value, found_value_date))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python Pandas:如何根据条件库中的另一个数组替换数据帧中的值

来自分类Dev

如何从R中的另一个数据帧中提取数据帧

来自分类Dev

python - 如何将数据帧与python中pandas中另一个数据帧的子集交集进行比较?

来自分类Dev

如何从列表中提取索引值并将其替换在另一个特定的数据帧R中?

来自分类Dev

仅将数据帧中的新值附加到 Pandas 中的另一个数据帧

来自分类Dev

将值从一个数据帧列传递到Pandas中的另一数据帧

来自分类Dev

如何将数据帧列的所有元素与另一个数据帧中为该列指定的值相乘?

来自分类Dev

如何在第一个数据帧中的另一个基于数据帧的列值中获取值的总和?

来自分类Dev

Python如何在pandas数据帧的[]括号内提取指定的字符串,并创建一个具有布尔值的新列

来自分类Dev

Python如何在pandas数据帧的[]括号内提取指定的字符串,并创建一个具有布尔值的新列

来自分类Dev

如何在将两个列中的公共列值匹配的同时将列从pandas数据框复制到另一个?

来自分类Dev

如何将一个数据帧的值与另一个数据帧中的值进行比较?

来自分类Dev

如何缓存Spark数据帧并在另一个脚本中引用它

来自分类Dev

如何基于Pandas数据框中的另一个列值添加列?

来自分类Dev

如何用除 NA 之外的另一个数据帧替换数据帧中的所有值?

来自分类Dev

如何基于另一个对称数据帧在 R 中创建对称数据帧

来自分类Dev

使用一个数据帧匹配 Pandas 中另一个数据帧中 x 的值并返回 y

来自分类Dev

如何将单元格值从一个数据帧复制到另一数据帧(不匹配的数据帧长度)

来自分类Dev

在python熊猫中,如何合并两个数据帧,同时使用另一个的权重将值散布在一个数据中?

来自分类Dev

如何用一个数据帧到另一个数据帧的值替换字符串

来自分类Dev

如何在Python中创建一个for循环,以将数据帧中的特定位置复制到另一个位置?

来自分类Dev

用另一个不同大小的 Pandas 数据帧减去 Pandas 数据帧

来自分类Dev

在将一个数据帧插入到另一个数据帧后如何重置索引

来自分类Dev

在R中,如何根据另一个数据帧中的范围对一个数据帧中的值进行分类?

来自分类Dev

如何将行值保留到另一个数据帧的第n个行值

来自分类Dev

在将数据与另一个数据帧合并时,如何避免一个数据帧中的几列?

来自分类Dev

Python:如何在不删除重复项的情况下将一个数据帧中的列值替换为另一个

来自分类Dev

如何用R中的另一个数据帧替换一个数据帧的某些值?

来自分类Dev

根据来自另一个数据帧的数据为 Pandas 数据帧中的列赋值

Related 相关文章

  1. 1

    Python Pandas:如何根据条件库中的另一个数组替换数据帧中的值

  2. 2

    如何从R中的另一个数据帧中提取数据帧

  3. 3

    python - 如何将数据帧与python中pandas中另一个数据帧的子集交集进行比较?

  4. 4

    如何从列表中提取索引值并将其替换在另一个特定的数据帧R中?

  5. 5

    仅将数据帧中的新值附加到 Pandas 中的另一个数据帧

  6. 6

    将值从一个数据帧列传递到Pandas中的另一数据帧

  7. 7

    如何将数据帧列的所有元素与另一个数据帧中为该列指定的值相乘?

  8. 8

    如何在第一个数据帧中的另一个基于数据帧的列值中获取值的总和?

  9. 9

    Python如何在pandas数据帧的[]括号内提取指定的字符串,并创建一个具有布尔值的新列

  10. 10

    Python如何在pandas数据帧的[]括号内提取指定的字符串,并创建一个具有布尔值的新列

  11. 11

    如何在将两个列中的公共列值匹配的同时将列从pandas数据框复制到另一个?

  12. 12

    如何将一个数据帧的值与另一个数据帧中的值进行比较?

  13. 13

    如何缓存Spark数据帧并在另一个脚本中引用它

  14. 14

    如何基于Pandas数据框中的另一个列值添加列?

  15. 15

    如何用除 NA 之外的另一个数据帧替换数据帧中的所有值?

  16. 16

    如何基于另一个对称数据帧在 R 中创建对称数据帧

  17. 17

    使用一个数据帧匹配 Pandas 中另一个数据帧中 x 的值并返回 y

  18. 18

    如何将单元格值从一个数据帧复制到另一数据帧(不匹配的数据帧长度)

  19. 19

    在python熊猫中,如何合并两个数据帧,同时使用另一个的权重将值散布在一个数据中?

  20. 20

    如何用一个数据帧到另一个数据帧的值替换字符串

  21. 21

    如何在Python中创建一个for循环,以将数据帧中的特定位置复制到另一个位置?

  22. 22

    用另一个不同大小的 Pandas 数据帧减去 Pandas 数据帧

  23. 23

    在将一个数据帧插入到另一个数据帧后如何重置索引

  24. 24

    在R中,如何根据另一个数据帧中的范围对一个数据帧中的值进行分类?

  25. 25

    如何将行值保留到另一个数据帧的第n个行值

  26. 26

    在将数据与另一个数据帧合并时,如何避免一个数据帧中的几列?

  27. 27

    Python:如何在不删除重复项的情况下将一个数据帧中的列值替换为另一个

  28. 28

    如何用R中的另一个数据帧替换一个数据帧的某些值?

  29. 29

    根据来自另一个数据帧的数据为 Pandas 数据帧中的列赋值

热门标签

归档