python - 如何将字典的值插入到熊猫数据框的空值中?
问题描述
我是熊猫新手。我面临空值问题。我有一个包含 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, 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]}
尝试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
推荐阅读
- gem5 - gem5中有cflush的替代品吗?
- search - 使用端到端加密时如何实现聊天中消息的搜索功能?
- azure - Azure 生命周期管理方案
- abp - abp 框架 (abp.io) 中 AbpSession.Use() 的替代方案
- javascript - Javascript数组推送不向已定义的数组添加值
- c++ - 使用其类型而不是其实例调用无捕获
- c# - 使用 Azure Web 部署时保存到 Azure 根文件夹
- python - 在 python 中匹配这个正则表达式(负前瞻?)
- python - 问题:无法将 .py 文件转换为 exe,使用 pyinstaller、py2exe
- javascript - 使用 jest 模拟 jquery 点击事件