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仍然按照建议工作。这是否回答了您的问题?这回答了你的问题吗?