Python 2.7 基于列数据帧中的真值筛选行

Python 2.7 基于列数据帧中的真值筛选行,python-2.7,dataframe,pandas,filtering,Python 2.7,Dataframe,Pandas,Filtering,我正在使用熊猫数据帧。我感兴趣的是根据应用于已存在datafame的列的条件获得新的数据帧。以下是数据帧: users_df Out[30]: <class 'pandas.core.frame.DataFrame'> Index: 3595 entries, Data columns (total 9 columns): screen_name 3595 non-null values User_Desc 3595 non-null valu

我正在使用熊猫数据帧。我感兴趣的是根据应用于已存在datafame的列的条件获得新的数据帧。以下是数据帧:

users_df
Out[30]: 
<class 'pandas.core.frame.DataFrame'>
Index: 3595 entries,
Data columns (total 9 columns):
screen_name        3595  non-null values

User_Desc          3595  non-null values

lang               3595  non-null values
followers_count    3579  non-null values
friends_count      3580  non-null values
listed_count       2665  non-null values
statuses_count     3595  non-null values
stem_key_flag      3595  non-null values
stem_keys          3595  non-null values
dtypes: bool(1), float64(3), int64(1), object(4)
但我得到的答案和上面的代码块完全一样。这意味着它不会过滤任何东西。我正在做一些在早期版本中兼容但现在不兼容的事情吗?如果不是,我犯了什么错误

我还在另一个列中尝试了类似的方法,该列是int数据类型,运行良好

fol_cnt_users_df = users_df[users_df['followers_count'] >1000]

In [35]: fol_cnt_users_df
Out[35]: 
<class 'pandas.core.frame.DataFrame'>
Index: 724 entries, 2013-06-20, 12:13:46 to 2013-06-19, 18:26:48
Data columns (total 9 columns):
screen_name        724  non-null values
User_Desc          724  non-null values
lang               724  non-null values
followers_count    724  non-null values
friends_count      722  non-null values
listed_count       714  non-null values
statuses_count     724  non-null values
stem_key_flag      724  non-null values
stem_keys          724  non-null values
dtypes: bool(1), float64(3), int64(1), object(4)
fol_cnt_users_df=users_df[users_df['followers_count']>1000]
在[35]中:以下用户
出[35]:
索引:724条,2013-06-20,12:13:46至2013-06-19,18:26:48
数据列(共9列):
屏幕名称724非空值
用户描述724非空值
lang 724非空值
follower\u计数724个非空值
friends\u计数722个非空值
列出了714个非空值
状态\u计数724个非空值
stem_key_标志724非空值
stem_键724非空值
数据类型:bool(1)、float64(3)、int64(1)、object(4)

提前感谢您的帮助。

您的问题可能是版本问题(我假设您使用的是
0.10
0.11
)。我已经测试了您的代码,如果
stem\u key\u flag
列包含任何
False
值,那么它应该返回不同的数据帧。但是,由于此线程已变得相当流行,为了未来的访问者,我想声明您的筛选行(如下所示)是正确的:

en_users_df=users_df[users_df['stem_key_flag']==True]
尽管如此,您还是可以使用一个简单的行(如

en\u users\u df=users\u df[users\u df.stem\u key\u flag]

向我们显示
users\u df.count()
en\u users\u df.count()
的输出。如果它们相等(即,您没有过滤任何内容),那么我强烈怀疑每一行的lang是
'en'
。如果没有,请显示一个反例行。dan,我对问题进行了一点编辑。现在我想看看类型为bool的字段,而不是lang。好的,现在您考虑的是一个不同的列,但我有一个相同的问题:
stem\u key\u flag
的所有条目是否都是
True
?你能举个反例吗?pandas肯定仍然支持这种用法。“在[44]:users_df['stem_key_flag']dt_time 2013-06-20,12:13:46 False 2013-06-20,14:41:23 True”此外,我还找到了解决方案。如果我使用==1,它就可以工作,而不是True。谢谢你的谈话。我很感激
fol_cnt_users_df = users_df[users_df['followers_count'] >1000]

In [35]: fol_cnt_users_df
Out[35]: 
<class 'pandas.core.frame.DataFrame'>
Index: 724 entries, 2013-06-20, 12:13:46 to 2013-06-19, 18:26:48
Data columns (total 9 columns):
screen_name        724  non-null values
User_Desc          724  non-null values
lang               724  non-null values
followers_count    724  non-null values
friends_count      722  non-null values
listed_count       714  non-null values
statuses_count     724  non-null values
stem_key_flag      724  non-null values
stem_keys          724  non-null values
dtypes: bool(1), float64(3), int64(1), object(4)