给定一个测试数据集,如下所示:
id city name
0 1 bj NaN
1 2 bj jack
2 3 bj NaN
3 4 bj jim
4 5 sh NaN
5 6 sh NaN
6 7 sh steve
7 8 sh fiona
8 9 sh NaN
如何按city
分组并删除name
的NaN
行,同时仅为每个group
保留一行?非常感谢
预期结果如下:
id city name
0 1 bj NaN
1 2 bj jack
2 4 bj jim
3 5 sh NaN
4 7 sh steve
5 8 sh fiona
由df = pd.read_clipboard(na_filter = False)
从excel文件读取的新数据集,请注意N/A
不应被视为NaN
:
newcode build_name floor rent_id rent_name
0 1210010403 C栋 25 1765228 (株)有延商店上海事务所
1 1210010403 C栋 25 1765229 N/A
2 1210010403 C栋 25 1765229 N/A
3 1210010403 C栋 25 1765229 N/A
4 1210010403 C栋 25 1765230 上海皇瑾文化传媒有限公司
5 1210010403 C栋 25 1765229 N/A
6 1210010403 C栋 25 1765231 上海农邦实业有限公司
7 1210010403 C栋 25 1765232 N/A
8 1210010403 C栋 25 1765231 上海农NA邦实业有限公司
代码:df[df['rent_name'].ne('N/A') | ~df.duplicated(subset=['newcode', 'build_name', 'floor'])]
,与df[~(df['rent_name'].eq('N/A') & df.duplicated(subset = ['newcode', 'build_name', 'floor'], keep = 'first'))]
的结果相同
输出:
newcode build_name floor rent_id rent_name
0 1210010403 C栋 25 1765228 (株)有延商店上海事务所
4 1210010403 C栋 25 1765230 上海皇瑾文化传媒有限公司
6 1210010403 C栋 25 1765231 上海农邦实业有限公司
8 1210010403 C栋 25 1765231 上海农NA邦实业有限公司
您可以看到结果中缺少一行,我不知道为什么
期望输出:
newcode build_name floor rent_id rent_name
0 1210010403 C栋 25 1765228 (株)有延商店上海事务所
1 1210010403 C栋 25 1765229 N/A
4 1210010403 C栋 25 1765230 上海皇瑾文化传媒有限公司
6 1210010403 C栋 25 1765231 上海农邦实业有限公司
8 1210010403 C栋 25 1765231 上海农NA邦实业有限公司
每个
city
测试的链条件不缺少值或第一个重复值,名称:编辑:对于测试字符串} :
N/A
,请使用^{如果要测试多个值,请使用带反转掩码的^{} :
编辑:
EDIT1:对于重复测试,需要添加带有
NaN
的列,此处rent_name
:布尔选择
NaNs
,删除name
和city
中的最后一个重复项相关问题 更多 >
编程相关推荐