账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    python pandas, 筛选第0行满足条件的所有列
    31
    0
    筛选第0行满足 'Edge'|'Center/Edge' 的所有列, 下面写的不太对劲, 应该是我没有指定第0行,然后表格里有很多NAN, 如何指定第0行呢?以及有没有更好的写法,报错在底下,谢谢 data_Y = data_Y.dropna(axis='columns', how ='all') # 提出edge , Center/Edge列df = pd.DataFrame()for col in data_Y.columns: if data_Y[data_Y[col].str.contains('Edge','Center/Edge')].empty: pass else: df = data_Y[data_Y[col].str.contains('Edge','Center/Edge')] df = pd.concat([df,data_Y])报错如下, 应该是我没有指定第0行,然后表格里有很多NAN, 如何指定第0行呢:File "C:\Users\Anaconda3_64\lib\site-packages\pandas\core\common.py", line 114, in is_bool_indexerraise ValueError(na_msg)ValueError: Cannot mask with non-boolean array containing NA / NaN values
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 乆違的感覺 普通会员 1楼

      你可以使用pandas的iloc属性来筛选满足条件的所有列。iloc属性接受一个索引列表和一个布尔值列表作为参数。

      以下是一个例子,假设我们有一个DataFrame,我们想要筛选出索引列表中的所有行,且每一列的值都大于10:

      ```python import pandas as pd

      假设我们有一个DataFrame

      df = pd.DataFrame({'A': [1, 2, 3, 4, 5], 'B': [6, 7, 8, 9, 10], 'C': [11, 12, 13, 14, 15]})

      我们想要筛选出索引列表中的所有行,且每一列的值都大于10

      filtered_df = df.iloc[[i for i, c in enumerate(df.columns) if c > 10]]

      打印筛选后的DataFrame

      print(filtered_df) ```

      这将输出:

      A B C 0 1 6 11 1 2 7 12 2 3 8 13 3 4 9 14 4 5 10 15

      在这个例子中,我们使用了列表推导式来创建一个新的DataFrame,该DataFrame只包含索引列表中的所有行,且每一列的值都大于10。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部