所有列最佳方式我有一个数据帧:大熊猫:选择开始X
import pandas as pd
import numpy as np
df = pd.DataFrame({'foo.aa': [1, 2.1, np.nan, 4.7, 5.6, 6.8],
'foo.fighters': [0, 1, np.nan, 0, 0, 0],
'foo.bars': [0, 0, 0, 0, 0, 1],
'bar.baz': [5, 5, 6, 5, 5.6, 6.8],
'foo.fox': [2, 4, 1, 0, 0, 5],
'nas.foo': ['NA', 0, 1, 0, 0, 0],
'foo.manchu': ['NA', 0, 0, 0, 0, 0],})
我想在列选择开始foo.
值1。有没有更好的办法做到这一点以外:类似于编写类似
df2 = df[(df['foo.aa'] == 1)|
(df['foo.fighters'] == 1)|
(df['foo.bars'] == 1)|
(df['foo.fox'] == 1)|
(df['foo.manchu'] == 1)
]
东西:
df2= df[df.STARTS_WITH_FOO == 1]
答案应该打印出这样的数据帧:
bar.baz foo.aa foo.bars foo.fighters foo.fox foo.manchu nas.foo
0 5.0 1.0 0 0 2 NA NA
1 5.0 2.1 0 1 4 0 0
2 6.0 NaN 0 NaN 1 0 1
5 6.8 6.8 1 0 5 0 0
[4 rows x 7 columns]
请考虑您的选项2移动到顶部您的回答 – JanLauGe 2018-02-26 15:31:46
downvoter谨慎解释? – EdChum 2018-02-26 16:35:59
@JanLauGe虽然'startswith'将是纯粹的'pandas'方法,但使用列表理解实际上是最快的方法,所以我已经发布了两种方法 – EdChum 2018-02-26 16:36:38