gpt4 book ai didi

Python:重新组织数据框,其中一列中出现重复的值。

转载 作者:行者123 更新时间:2023-12-01 02:24:03 24 4
gpt4 key购买 nike

我有一个如下所示的数据框:

     Instrument                  Date  Total Return
0 KYG2615B1014 2017-11-29T00:00:00Z 0.000000
1 KYG2615B1014 2017-11-28T00:00:00Z -10.679612
2 KYG2615B1014 2017-11-27T00:00:00Z -8.035714
3 JP3843250006 2017-11-29T00:00:00Z 0.348086
4 JP3843250006 2017-11-28T00:00:00Z 0.349301
5 JP3843250006 2017-11-27T00:00:00Z 0.200000

鉴于该数据框,我想让它看起来像这样:

              11/27/2017  11/28/2017  11/29/2017
KYG2615B1014 -8.035714 -10.679612 0.000000
JP3843250006 0.200000 0.349301 0.348086

基本上我想要的是将每个日期作为一个新列,并在该列内放置相应的值。我不会说“过滤”或“删除”重复项,我会说这更像是重新排列。

这两个数据帧都是由我生成的,但问题是要获取这些数据,我必须调用 API。在第一个数据框中,我仅进行一次调用并提取所有这些数据,而在另一个数据框中,我每个日期进行一次调用。因此,第一个比第二个更有效,并且认为这是正确的选择,但我陷入了将数据帧重新组织为我需要的部分。

我想创建一个空数据框,然后通过在“仪器”列中选择重复元素的索引来填充它,使用这些索引从“总返回”列中获取元素,然后将来自该 block 的元素放入相应的数据,但我不知道该怎么做。

如果有人可以帮助我,我会很高兴知道。

不确定目前是否有用,但这就是我在第二个版本中生成数据框(在填充之前)的方式:

import pandas as pd
import datetime

#Getting a list of dates
start=datetime.date(2017,11,27)
end=datetime.date.today() - datetime.timedelta(days=1)
row_dates=[x.strftime('%m/%d/%Y') for x in pd.bdate_range(start,end).tolist()]
#getting identifiers to be used on Eikon
csv_data=pd.read_csv('171128.csv', header=None)
identifiers=csv_data[0].tolist()
df=pd.DataFrame(index=identifiers, columns=row_dates)

最佳答案

您可以使用pd.crosstab:

pd.crosstab(df.Instrument, df['Date'],values=df['Total Return'], aggfunc='mean')

输出:

Date          2017-11-27T00:00:00Z  2017-11-28T00:00:00Z  2017-11-29T00:00:00Z
Instrument
JP3843250006 0.200000 0.349301 0.348086
KYG2615B1014 -8.035714 -10.679612 0.000000

关于Python:重新组织数据框,其中一列中出现重复的值。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47581274/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com