Python - Pandas - DROPNA(子集)删除值没有明显的原因?



我正在清理一些数据,我一直在努力解决一件事。

我有一个数据框架7740行和68列。

大多数列包含Nan值。

我感兴趣的是,删除NaN值时,它是NaN在这两列:[SERIAL_ID],[NUMBER_ID]

的例子:

<表类> SERIAL_ID NUMBER_ID tbody><<tr>8 ry68u4r南8756 ert58759321南南南78965217 ey68u4r南95856 ert5988888南南南4555555

我不知道为什么它只适用于3列,而不是68个原件。然而,我们可以通过其他方式获得期望输出

使用boolean indexing:

df[df[['SERIAL_ID', 'NUMBER_ID']].notnull().any(axis=1)]

您可以使用boolean逻辑或简单地对任何给定的列执行如下操作:

import numpy as np
import pandas as pd
# sample dataframe
d = {'SERIAL_ID':['8RY68U4R', '8756ERT5', np.nan, np.nan],
'NUMBER_ID':[np.nan, 8759321, np.nan ,7896521]}
df = pd.DataFrame(d)
# apply logic to columns
df['nans'] = df['NUMBER_ID'].isnull() * df['SERIAL_ID'].isnull()
# filter columns
df_filtered = df[df['nans']==False]
print(df_filtered)

返回:

SERIAL_ID  NUMBER_ID   nans
0  8RY68U4R        NaN  False
1  8756ERT5  8759321.0  False
3       NaN  7896521.0  False

相关内容

  • 没有找到相关文章

最新更新