【发布时间】:2019-08-07 00:35:41
【问题描述】:
我正在对 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'列的源表吗?
-
是的,我用示例更新了上面的帖子。
-
@shadowtalker 你能解释一下你遇到问题的代码部分吗?你的实际问题与这个问题、代码或数据有什么关系吗?