我有一个如下所示的数据帧(前3行):
Sample_Name Sample_ID Sample_Type IS Component_Name IS_Name Component_Group_Name Outlier_Reasons Actual_Concentration Area Height Retention_Time Width_at_50_pct Used Calculated_Concentration Accuracy
Index
1 20170824_ELN147926_HexLacCer_Plasma_A-1-1 NaN Unknown True GluCer(d18:1/12:0)_LCB_264.3 NaN NaN NaN 0.1 2.733532e+06 5.963840e+05 2.963911 0.068676 True NaN NaN
2 20170824_ELN147926_HexLacCer_Plasma_A-1-1 NaN Unknown True GluCer(d18:1/17:0)_LCB_264.3 NaN NaN NaN 0.1 2.945190e+06 5.597470e+05 2.745026 0.068086 True NaN NaN
3 20170824_ELN147926_HexLacCer_Plasma_A-1-1 NaN Unknown False GluCer(d18:1/16:0)_LCB_264.3 GluCer(d18:1/17:0)_LCB_264.3 NaN NaN NaN 3.993535e+06 8.912731e+05 2.791991 0.059864 True 125.927659773487 NaN
尝试生成透视表时:
^{pr2}$我得到以下错误:
ValueError: Index contains duplicate entries, cannot reshape
但我没有尝试重置索引。我在“索引”列中找不到任何重复的值。有人能帮我找出这里的问题吗?在
预期的输出将是一个经过重塑的数据帧,其中只有唯一的组分名称作为列,并且每个样本名称各自的浓度为:
Sample_Name GluCer(d18:1/12:0)_LCB_264.3 GluCer(d18:1/17:0)_LCB_264.3 GluCer(d18:1/16:0)_LCB_264.3
20170824_ELN147926_HexLacCer_Plasma_A-1-1 NaN NaN 125.927659773487
澄清一下,我不是在收集数据,只是重塑它。在
您可以使用
groupby()
和unstack()
来避免使用pivot()
看到的错误。在以下是一些示例数据,其中添加了一些边缘大小写,删除了一些列值或用MCVE替换:
输出:
^{pr2}$您应该能够通过使用文档中的
pandas.pivot_table()
功能来完成您想要做的事情here。在将数据帧存储为
df
时,请使用以下代码:如果您想要的不是浓度值的平均值,则需要更改
aggfunc
参数。在编辑
因为您不想聚集这些值,所以您可以通过在DataFrame上使用
^{pr2}$set_index
函数来重塑数据,并找到文档here。在结果表应该看起来像您期望的结果,并且将有一个多索引。在
相关问题 更多 >
编程相关推荐