los*_*l29 6 python ipython pandas
我有一个名为 的 Pandas Dataframe Merged
,它有一个名为 的属性RegimentalNumber
。
我正在使用该Pandas.Dataframe.duplicated()
方法从此数据框中检索重复项,如下所示:
In [16]: Merged[Merged.RegimentalNumber.duplicated() == True]
Run Code Online (Sandbox Code Playgroud)
但是,结果似乎还包含RegimentalNumber
重复项的缺失值。
该方法是否duplicated()
采用标志或参数来排除缺失值作为重复项?我查看了此方法的API 文档,但找不到这样的标志。
当然,我可以简单地排除缺失值,如下所示:
In [17]: duplicates = Merged[Merged.RegimentalNumber.duplicated() == True]
In [18]: duplicates[duplicates.RegimentalNumber.notnull()]
Run Code Online (Sandbox Code Playgroud)
duplicated()
然而,在我看来,该方法还包含缺失值作为重复项,这似乎并不正确。有没有更简单的一步解决方案?
您可以使用它df.dropna()
来确保忽略 NULL 值。例如,
import numpy as np
import pandas as pd
df = pd.DataFrame({'foo': [1, np.nan, 1, 2, 3, 2, 3, np.nan, float('nan'),
np.nan, float('nan'), 'xyz']})
print(df.dropna().loc[df['foo'].duplicated()])
Run Code Online (Sandbox Code Playgroud)
产量
foo
2 1
5 2
6 3
Run Code Online (Sandbox Code Playgroud)
请注意,df['foo'].duplicated()
是一个布尔系列,其索引可能大于df.dropna().index
。但是,当您使用 来选择行时df.dropna().loc
,布尔系列索引将重新索引以匹配df.dropna().index
,因此 NULL 值可以方便地被删除。
归档时间: |
|
查看次数: |
6391 次 |
最近记录: |