Pandas Pivot使所有值都为NaN

2024-10-06 09:11:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个pandas数据帧,由12列和900个条目组成,如下所示:

In [1]: df

Out[2]: 

    Id  BestInGen   Ceiling Fitness Floor   Generation  Name    Precision   Runid   SolutionId  Timestamp                Value
0   1   True    2.5 2.416582e+11    0.500   1   H1001Thickness1 0.010   20180214142319  4   2018-02-14 14:28:41.391908  0.500
1   2   False   0.1 2.830500e+11    0.015   1   H6512Diameter8  0.005   20180214142319  3   2018-02-14 14:28:41.423109  0.015
2   3   False   2.5 2.830500e+11    0.500   1   H2201Thickness1 0.010   20180214142319  3   2018-02-14 14:28:41.423109  0.500
3   4   False   0.1 2.830500e+11    0.015   1   H2201Diameter1  0.005   20180214142319  3   2018-02-14 14:28:41.423109  0.015
4   5   False   2.5 2.830500e+11    0.500   1   H2201Thickness2 0.010   20180214142319  3   2018-02-14 14:28:41.423109  0.500

我想把这个数据帧透视,这样“Name”就变成了列,而行由“Value”填充。在

目前我尝试了以下方法:

^{pr2}$

我认为这会产生我需要的结果,我看到的其他线程也是如此。但在我的情况下会发生以下情况

In [3]: dfPivot

Out [4]: 


Name    H1001Diameter1  H1001Diameter10 H1001Diameter12
Id
1       Nan             Nan             Nan

同样的情况持续到数据帧的末尾,所有值都是Nan。原始数据类型是float64,并且原始数据中没有nan。在

关于如何解决这个问题有什么建议吗?抱歉,如果这是一个noob问题,或者请让我知道如果你需要我编辑我的问题/例子。在


Tags: 数据nameinidfalsepandasdf原始数据
1条回答
网友
1楼 · 发布于 2024-10-06 09:11:58

试试看

pd.pivot_table(df[['Id', 'Name', 'Value']],
               index='Id',
               columns=['Name'],
               values=['Value'],
               aggfunc=lambda x: x)

这假设您不复制值。否则,您需要编辑aggfunc来进行正确的聚合

相关问题 更多 >