标识数据帧中也存在于另一个较小数据帧中的唯一代码



我是python的新手,正在玩一些数据。我能够将具有特定错误的标识符代码提取到较小的数据框中。我想从更大的数据集中删除这些记录。但是,某些标识符代码具有多个条目,并非所有条目都存在错误。我仍然想删除发生其中一个错误的所有标识符代码。

我认为 for 循环方法是最好的,但可能需要很长时间,因为每个标识符都必须搜索第二个列表。

我不确定我是否正在以最好的方式考虑这个问题 - 如果您有更好的想法或方法来删除这些记录,请告知!

好的,现在我明白了。粗略地说,这应该可以为您解决问题:

>>> import pandas as pd
>>> df_1=pd.DataFrame(data={"Code": [0,1,2,2,3,4,5,6,6], "Age": [60, 64, 62, "N/A", 77, 88,58, "N/A", 45]})
>>> df_2=pd.DataFrame(data={"Code": [2,4,5]})
>>> df_1
Age  Code
0   60     0
1   64     1
2   62     2
3  N/A     2
4   77     3
5   88     4
6   58     5
7  N/A     6
8   45     6
>>> df_3 = df_1.merge(df_2, on="Code", how="left", indicator=True)
>>> df_3
Age  Code     _merge
0   60     0  left_only
1   64     1  left_only
2   62     2       both
3  N/A     2       both
4   77     3  left_only
5   88     4       both
6   58     5       both
7  N/A     6  left_only
8   45     6  left_only
>>> df_final = df_3[["Age", "Code"]][df_3["_merge"]=="left_only"]
>>> df_final
Age  Code
0   60     0
1   64     1
4   77     3
7  N/A     6
8   45     6

裁判:

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.merge.html

最新更新