微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将字典的值插入到熊猫数据框的空值中?

如何解决如何将字典的值插入到熊猫数据框的空值中?

我是熊猫的新手。我正面临空值问题。我有一个包含 3 个值和键的字典,它们必须插入到缺失值列中,我该怎么做?最后一个字key是列名

In [57]: df
Out[57]: 
   a   b   c  d  
0  0   1   2  3  
1  0 NaN   0  1  
2  0 Nan   3  Nan 
3  0   1   2  5  
4  0 Nan   2  Nan 
In [58]: dict= {df_b : [11,22,44],df_d: [33,54]

我想要的输出如下。

Out[57]: 
   a   b   c  d  
0  0   1   2  3  
1  0   11  0  1  
2  0   22  3  33 
3  0   1   2  5  
4  0   44  2  54

解决方法

给定你的数据

d = [[0,1,2,3  ],[0,np.nan,1  ],3,np.nan],5  ],np.nan]] ]
df = pd.DataFrame(d,columns=['a','b','c','d'])
d = {'df_b' : [11,22,44],'df_d': [33,54]}

试试pandas.isna()

for key in d:
    column_name = key.split('_')[-1]
    val = d[key]
    for i,v in zip(df[df[column_name].isna()].index,val):
        df.loc[i,column_name] = v

输出

a   b     c    d
0   1.0   2   3.0
0   11.0  0   1.0
0   22.0  3   33.0
0   1.0   2   5.0
0   44.0  2   54.0
,

您可以使用 df.locisnull() 来选择 NaN 值并将它们替换为列表中的项目。

import pandas as pd

import numpy as np

mydict = {'b' : [11,'d': [33,54]}
df = pd.DataFrame({'a': [0,0],'b': [1,'c': [2,2],'d': [3,5,np.nan]})

for key in mydict:
    df.loc[df[key].isnull(),key] = mydict[key]

#   a     b  c     d
0  0   1.0  2   3.0
1  0  11.0  0   1.0
2  0  22.0  3  33.0
3  0   1.0  2   5.0
4  0  44.0  2  54.0

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?