在python中熔化不完整的数据而不丢弃所有NaN

在python中熔化不完整的数据而不丢弃所有NaN,第1张

概述我正在尝试使用pd.melt将3列熔化为一个分类列.目前,数据框看起来像这样. id1 Plane Car Boat0 123 None None None1 124 Plane None None2 125 None None Boat 在某些时候,我用NaN代替None,但我不确定在融化前是否有必要.我的目标是有一个类别列,列出它的车辆类 我正在尝试使用pd.melt将3列熔化为一个分类列.目前,数据框看起来像这样.

ID1   Plane  Car   Boat0   123   None   None  None1   124   Plane  None  None2   125   None   None  Boat

在某些时候,我用NaN代替None,但我不确定在融化前是否有必要.我的目标是有一个类别列,列出它的车辆类型,仅当所有列都为空时才使用None.

ID1   Type0   123   None   1   124   Plane  2   125   Boat

我想出的代码是这样的:

df = pd.melt(df,ID_vars=['ID1'],var_name='Type')

我遇到的问题是它使我的数据框中的观察结果增加了三倍.我可以过滤掉Type = None的行,但是会丢弃诸如ID1 = 123之类的数据,其中所有三个原始列都是None.

ID1   Type0   123   None   1   123   None  2   123   None  3   124   Plane4   124   None   5   124   None

有没有一种有效的方法来解决熔化问题?或者我是否需要遍历数据并使用条件写入新的数据帧?

解决方法 你这样做.使用reindex来获取那些缺少的ID值.

df1 = df.replace('None',np.nan).set_index('ID1')df1.stack().reset_index(level=1,drop=True).reindex(df1.index)

输出:

ID1123      NaN124    Plane125     Boatdtype: object
总结

以上是内存溢出为你收集整理的在python中熔化不完整的数据而不丢弃所有NaN全部内容,希望文章能够帮你解决在python中熔化不完整的数据而不丢弃所有NaN所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1192113.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存