Python 我怎样才能在《熊猫》的数百个专栏中找到失踪的人?

Python 我怎样才能在《熊猫》的数百个专栏中找到失踪的人?,python,pandas,Python,Pandas,我的数据集如下所示: col1 col2 col3 ... col10000 10 NaN 25 ... 5 NaN 100 NaN ... 5 35 NaN NaN ... 5 999 1900 500 ... 5 . . . 如何删除从col1到col300的列缺失的所有行?尝试以下操作: cols = ["col{}".f

我的数据集如下所示:

col1    col2    col3    ...    col10000
10      NaN     25      ...    5
NaN     100     NaN     ...    5
35      NaN     NaN     ...    5
999     1900    500     ...    5
.
.
.
如何删除从col1到col300的列缺失的所有行?

尝试以下操作:

cols = ["col{}".format(i) for i in range(1,301)]
df = df.dropna(axis=0, subset=cols)
试试这个:

cols = ["col{}".format(i) for i in range(1,301)]
df = df.dropna(axis=0, subset=cols)

我们可以进行手动检查:

df[df.iloc[:,:300].notna().all(axis=1)]
或将前300列作为dropna中的子集传递:


我们可以进行手动检查:

df[df.iloc[:,:300].notna().all(axis=1)]
或将前300列作为dropna中的子集传递:

通常我会使用dropna,但似乎loc更适合这种情况

    col1  coln  col300
0   3.0   2.0   NaN
1   2.0   NaN   1.0
2   NaN   2.0   5.0
一行

df.loc[pd.isnulldf.col1==False&pd.isnulldf.col300==False] col1 coln col300 1.2.0 NaN 1.0 这是在两个布尔列上执行元素操作,然后将其提供给loc以按行过滤

pd.isnulldf.col1==False&pd.isnulldf.col300==False 0错误 1正确 2错误 数据类型:bool 通常我会使用dropna,但似乎loc更适合这种情况

    col1  coln  col300
0   3.0   2.0   NaN
1   2.0   NaN   1.0
2   NaN   2.0   5.0
一行

df.loc[pd.isnulldf.col1==False&pd.isnulldf.col300==False] col1 coln col300 1.2.0 NaN 1.0 这是在两个布尔列上执行元素操作,然后将其提供给loc以按行过滤

pd.isnulldf.col1==False&pd.isnulldf.col300==False 0错误 1正确 2错误 数据类型:bool
保留你想要的栏目不是更容易吗?cols_to_keep=['A','B','C']df=df[cols_to_keep],这可能是最快的方法,并且与不相关列的计数无关。@OliverPrislan OP想要检查300列。我认为手动键入“cols_to_keep”不是一个好主意。如果列不是前300列,则此操作将不起作用。最好使用列名来防止任何错误。这应该是公认的答案。保留所需的列不是更容易吗?cols_to_keep=['A','B','C']df=df[cols_to_keep],这可能是最快的方法,并且与不相关列的计数无关。@OliverPrislan OP想要检查300列。我认为手动键入“cols_to_keep”不是一个好主意。如果列不是前300列,则此操作将不起作用。最好使用列名来防止任何错误。这应该是公认的答案。如果列的名称与示例中的名称相同,则此方法有效。如果名字只是代表,它将失败。OP要求col1到col300。如果它们被命名为其他名称,则可以使用cols表示,dropna仍然可以按照建议工作。如果列的名称与示例中的名称相同,则这种方法也可以工作。如果名字只是代表,它将失败。OP要求col1到col300。如果它们被命名为其他名称,则可以使用cols表示,dropna仍然按照建议工作。这是否回答了您的问题?这回答了你的问题吗?