gpt4 book ai didi

python - Pandas 连接 : cannot reindex from a duplicate axis

转载 作者:行者123 更新时间:2023-11-28 19:06:42 26 4
gpt4 key购买 nike

我正在尝试concat一些timeseries。对于某些数据集,这是可行的。我的 timeseries 使用 date 作为索引。现在对于一些 ts.size 相同的数据集,pd.concat 可以完美运行。但是当 sizetimeseries 中不同时,我得到错误:cannot reindex from a duplicate axis。所以我假设这是由于 size 的差异而发生的。如果是这样,我应该用零填充 timeseries 吗?

ts.head():

date
2017-03-09 24.6245
2017-03-10 24.5765
2017-03-13 24.5767
2017-03-14 24.5344
2017-03-15 24.5440

我已经坚持了一天,所以感谢任何帮助。谢谢这是我发布的原始问题,您可以看到我的代码:ValueError: cannot reindex from a duplicate axis Pandas .我只想知道这是否有问题。

我的代码:

def get_adj_nav(self, fund_id):
df_nav = read_frame(
super(__class__, self).filter(fund__id=fund_id, nav__gt=0).exclude(fund__account_class=0).order_by(
'valuation_period_end_date'), coerce_float=True,
fieldnames=['income_payable', 'valuation_period_end_date', 'nav', 'outstanding_shares_par'],
index_col='valuation_period_end_date')
df_dvd, skip = self.get_dvd(fund_id=fund_id)
df_nav_adj = calculate_adjusted_prices(
df_nav.join(df_dvd).fillna(0).rename_axis({'payout_per_share': 'dividend'}, axis=1), column='nav')
return df_nav_adj

def json_total_return_table(request, fund_account_id):
ts_list = []
for fund_id in Fund.objects.get_fund_series(fund_account_id=fund_account_id):
if NAV.objects.filter(fund__id=fund_id, income_payable__lt=0).exists():
ts = NAV.objects.get_adj_nav(fund_id)['adj_nav']
ts.name = Fund.objects.get(id=fund_id).account_class_description
ts_list.append(ts.copy())
print(ts)
df_adj_nav = pd.concat(ts_list, axis=1) # ====> Throws error
cols_to_datetime(df_adj_nav, 'index')
df_adj_nav = ffn.core.calc_stats(df_adj_nav.dropna()).to_csv(sep=',')

最佳答案

所以当我说它失败的原因是尺寸不同时,我认为我是正确的。所以我改用merge。我只是更改了这一行:df_adj_nav = pd.concat(ts_list, axis=1)

到这一行:df_adj_nav = reduce(lambda x, y: pd.merge(x, y, left_index=True, right_index=True, how='outer'), ts_list)

感谢@HodgePodge 的提示 :)

关于python - Pandas 连接 : cannot reindex from a duplicate axis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45885043/

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