pandas:选择名称以X开头的所有列的最佳方法

pandas:选择名称以X开头的所有列的最佳方法,第1张

pandas:选择名称以X开头的所有列的最佳方法

只需执行列表推导即可创建您的列:

In [28]:filter_col = [col for col in df if col.startswith('foo')]filter_colOut[28]:['foo.aa', 'foo.bars', 'foo.fighters', 'foo.fox', 'foo.manchu']In [29]:df[filter_col]Out[29]:   foo.aa  foo.bars  foo.fighters  foo.fox foo.manchu0     1.0         0  0        2         NA1     2.1         0  1        4          02     NaN         0NaN        1          03     4.7         0  0        0          04     5.6         0  0        0          05     6.8         1  0        5          0

另一种方法是从列创建序列,并使用向量化str方法

startswith

In [33]:df[df.columns[pd.Series(df.columns).str.startswith('foo')]]Out[33]:   foo.aa  foo.bars  foo.fighters  foo.fox foo.manchu0     1.0         0  0        2         NA1     2.1         0  1        4          02     NaN         0NaN        1          03     4.7         0  0        0          04     5.6         0  0        0          05     6.8         1  0        5          0

为了实现您想要的目标,您需要添加以下内容以过滤不符合您的

==1
条件的值:

In [36]:df[df[df.columns[pd.Series(df.columns).str.startswith('foo')]]==1]Out[36]:   bar.baz  foo.aa  foo.bars  foo.fighters  foo.fox foo.manchu nas.foo0      NaN       1       NaNNaN      NaN        NaN     NaN1      NaN     NaN       NaN  1      NaN        NaN     NaN2      NaN     NaN       NaNNaN        1        NaN     NaN3      NaN     NaN       NaNNaN      NaN        NaN     NaN4      NaN     NaN       NaNNaN      NaN        NaN     NaN5      NaN     NaN         1NaN      NaN        NaN     NaN

编辑

看到您想要复杂的答案后,确定为:

In [72]:df.loc[df[df[df.columns[pd.Series(df.columns).str.startswith('foo')]] == 1].dropna(how='all', axis=0).index]Out[72]:   bar.baz  foo.aa  foo.bars  foo.fighters  foo.fox foo.manchu nas.foo0      5.0     1.0         0  0        2         NA      NA1      5.0     2.1         0  1        4          0       02      6.0     NaN         0NaN        1          0       15      6.8     6.8         1  0        5          0       0


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5623445.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-15
下一篇2022-12-15

发表评论

登录后才能评论

评论列表(0条)

    保存