python - python - 如何用python中其他数据框中的条目替换一个数据框中缺少的列条目?
问题描述
有两个数据框 df1 和 df2。df1中的两列分别是A和B。B中有缺失值。对于df1中B中的缺失值,df2中有条目,其列为A和B(df2中的记录是B中缺失的记录)仅 df1)。我想用 df2 中 B 的相应条目替换 df1 中 B 的缺失值。
编辑 :
df1 = pd.DataFrame({'A': [1,2,3,4,5,6,7,8], 'b': [101,123,np.nan,678,np.nan,672,np.nan,786], 'C': ['ABC', 'DER', 'ERC','DFE','HJI','JKL','SDH',np.Nan]})
df2 = pd.DataFrame({'A': [3,7], 'B': [563,785]})
所需的 O/P:
op = pd.DataFrame({'A': [1,2,3,4,5,6,7,8], 'b': [101,123,563,678,np.nan,672,785,786], 'C': ['ABC', 'DER', 'ERC','DFE','HJI','JKL','SDH',np.Nan]})
解决方案
使用,pd.merge
左合并数据框df1
和df2
列A
,然后使用从列中的值Series.fillna
填充列中的缺失值:b
B
df = pd.merge(df1, df2, on='A', how='left')
df['b'] = df['b'].fillna(df.pop('B'))
结果:
# print(df)
A b C
0 1 101.0 ABC
1 2 123.0 DER
2 3 563.0 ERC
3 4 678.0 DFE
4 5 NaN HJI
5 6 672.0 JKL
6 7 785.0 SDH
7 8 786.0 NaN
推荐阅读
- python - PyGObject 页面切换按钮
- c++ - Chdir 滞后壳
- r - 为什么使用单个字符索引的索引适用于数据框而不适用于矩阵?
- xcode - 归档时 SPM Kingfisher SwiftUI 编译器错误
- vim-plugin - Neovim gkeep 插件
- sql-server - SQL Server:性能问题:WHERE 子句中的 OR 语句替换
- mysql - 为什么 MYSQL 数据目录更改失败,sql 在默认位置创建自己的实例
- mingw - 使用 Bazel 和 Mingw 编译 gflags 库
- java - 如何在 PL/SQL 中的 Map 中返回结果?
- python - 输出 ==> elif mid_number
cards= [20,19,18,17,16,15,13, 11, 10, 7, 4, 3, 1, 0], query=1 def checker(cards,query