gpt4 book ai didi

Pandas groupby-apply : cannot reindex from a duplicate axis

转载 作者:行者123 更新时间:2023-12-02 00:54:40 25 4
gpt4 key购买 nike

我正在对 DataFrame 执行 groupby 操作。在每个组上,我必须重命名两列并删除一列,以便每个组都具有以下形式:

index(timestamp) | column-x | column-y
... | .... | .....

索引是一个时间戳,它对每个组都是通用的。 'column-x' 和 'column-y' 将因每个组而异。然后,我的目标是加入索引上的所有组,以便我拥有一个唯一的 DataFrame,例如:
index(timestamp) | column-x1 | column-y1 | column-x2 | column-y2 | ...
... | ..... | ...... | ....... | ....... | ...

我应用于每个组的功能是(我可以在迭代时对组进行就地编辑吗?):
def process_ssp(df_ssp):
sensor_name = df_ssp.iloc[0]['subsystem-sensor-parameter'] # to be used as column name
df_ssp.rename(columns = {
'value_raw': '%s_raw' % sensor_name,
'value_hrf': '%s_hrf' % sensor_name,
}, inplace = True)
df_ssp.drop('subsystem-sensor-parameter', axis='columns', inplace=True) # since this is the column I am grouping on I guess this isn't the right thing to do?
return df_ssp

然后我打电话:
res = df_node.groupby('subsystem-sensor-parameter', as_index=False).apply(process_ssp)

这会产生错误:
ValueError: cannot reindex from a duplicate axis

编辑:
数据集样本 https://drive.google.com/file/d/1RvPE1t3BmjeaqCNkVqGwmokCFQQp77n8/view?usp=sharing

最佳答案

您可以先添加列subsystem-sensor-parameter对于 MultiIndex,通过 unstack reshape ,按第二级对列中的 MultiIndex 进行排序并改变它们的位置。最后通过 map 展平转换 MultiIndex和 join :

res = (df_node.set_index('subsystem-sensor-parameter', append=True)
.unstack()
.sort_index(axis=1, level=1)
.swaplevel(0,1, axis=1))
res.columns = res.columns.map('_'.join)

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

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