首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >拆解熊猫数据删除NaN

拆解熊猫数据删除NaN
EN

Stack Overflow用户
提问于 2020-04-26 13:11:17
回答 1查看 107关注 0票数 0

鉴于以下数据:

代码语言:javascript
运行
复制
s = '{"PassengerId":{"0":1,"1":2,"2":3},"Survived":{"0":0,"1":1,"2":1},"Pclass":{"0":3,"1":1,"2":3}}'
df = pd.read_json(s)

它看起来是:

代码语言:javascript
运行
复制
   PassengerId  Survived  Pclass
0            1         0       3
1            2         1       1
2            3         1       3

假设它已经融化成

代码语言:javascript
运行
复制
m = df.melt()
print(m)

      variable  value
0  PassengerId      1
1  PassengerId      2
2  PassengerId      3
3     Survived      0
4     Survived      1
5     Survived      1
6       Pclass      3
7       Pclass      1
8       Pclass      3

我想知道如何将融化的m还原为原始的df

我尝试了以下类似的方法:

代码语言:javascript
运行
复制
m=df.melt().pivot(columns='variable', values='value').reset_index(drop=True)
m.columns.name = None

这给

代码语言:javascript
运行
复制
   PassengerId  Pclass  Survived
0          1.0     NaN       NaN
1          2.0     NaN       NaN
2          3.0     NaN       NaN
3          NaN     NaN       0.0
4          NaN     NaN       1.0
5          NaN     NaN       1.0
6          NaN     3.0       NaN
7          NaN     1.0       NaN
8          NaN     3.0       NaN
​

可以看到,每一行只包含有关单个列的信息,其中有很多NaN值,我想丢失。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-26 13:15:00

使用GroupBy.cumcount表示用于index参数的DataFrame.pivot中的新列

代码语言:javascript
运行
复制
m['new'] = m.groupby('variable').cumcount()

df = m.pivot(columns='variable', values='value', index='new')
print (df)

variable  PassengerId  Pclass  Survived
new                                    
0                   1       3         0
1                   2       1         1
2                   3       3         1

或者:

代码语言:javascript
运行
复制
df = (m.assign(new = m.groupby('variable').cumcount())
       .pivot(columns='variable', values='value', index='new'))
print (df)

variable  PassengerId  Pclass  Survived
new                                    
0                   1       3         0
1                   2       1         1
2                   3       3         1
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61441377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档