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



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

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

trypandas.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,22,44], 'd': [33,54]}
df = pd.DataFrame({'a': [0,0,0,0,0], 'b': [1, np.nan, np.nan, 1, np.nan], 'c': [2,0,3,2,2], 'd': [3,1,np.nan,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

相关内容

  • 没有找到相关文章

最新更新