使用Python已经一个月了,我想用一条规则清理我的数据帧。我有df和一个列表(lst\u 1),如下所示。在item2列中,我有string的值。如果item2列的值不在我的lst\u 1中,我想删除任何行。你知道吗
df=
key sellyr brand makrc item1 item2
0 da12 2013 imp apt furi dcs
1 da32 2013 sa rye rye app
2 da14 2013 sa NaN NaN pro
3 da11 2013 sa prm NaN zdc
4 da31 2013 sa grm wdm czd
........
#and my list is below
lst_1 = ['dcs','app','czd','des','sed']
#and my output should be
df_new=
key sellyr brand makrc item1 item2
0 da12 2013 imp apt furi dcs
1 da32 2013 sa rye rye app
4 da31 2013 sa grm wdm czd
........
我有.1百万行的值,所以我希望得到最有效的代码来删除行。有什么想法吗?你知道吗
----------编辑------
还有一件事。如果我想用不包括np.nan公司值,df_result2=df[测向项目1!= np.nan公司]工作?你知道吗
df_result2=
key sellyr brand makrc item1 item2
0 da12 2013 imp apt furi dcs
1 da32 2013 sa rye rye app
4 da31 2013 sa grm wdm czd
........
包括第二部分(NaN)的答案,也使用“&;运算符处理两种情况:
输出:
试试这个:
如果我理解正确的话,这应该是你想要的:
不过,我认为如果将lst\u 1转换为字典,在效率方面可能会更好,因为在字典中查找的次数很多,而且查找速度更快。你知道吗
相关问题 更多 >
编程相关推荐