DataFrame通过检查多个参数来添加布尔列

时间:2016-04-15 08:23:46

标签: pandas dataframe boolean ipython

我正在寻找类似的东西。

tweets = pd.DataFrame()

tweets['worldwide'] = [tweets['user.location'] == ["Worldwide", "worldwide", "WorldWide]]

新专栏'全球'通过检查列推文[' user.location']具有布尔值(True,False),该推文具有全球三种不同类型的拼写。

我想要那个价值" True"应该返回拼写的所有树格式"全球"。

2 个答案:

答案 0 :(得分:1)

IIUC然后你想要isin

tweets['worldwide'] = [tweets['user.location'].isin(["Worldwide", "worldwide", "WorldWide"])]

如果存在任何值,则会返回True

In [229]:
df = pd.DataFrame({'Tweets':['worldwide', 'asdas', 'Worldwide', 'WorldWide']})
df

Out[229]:
      Tweets
0  worldwide
1      asdas
2  Worldwide
3  WorldWide

In [230]:
df['Worldwide'] = df['Tweets'].isin(["Worldwide", "worldwide", "WorldWide"])
df

Out[230]:
      Tweets Worldwide
0  worldwide      True
1      asdas     False
2  Worldwide      True
3  WorldWide      True

但是,我个人认为在推文标准化方面有更多的里程,因此您可以通过使用str.lower小写推文来比较单个表示形式,然后使用str.contains来测试推文是否包含您的字词:

In [231]:
df['Worldwide'] = df['Tweets'].str.lower().str.contains("worldwide")
df

Out[231]:
      Tweets Worldwide
0  worldwide      True
1      asdas     False
2  Worldwide      True
3  WorldWide      True

答案 1 :(得分:0)

我将此作为最终形式:           tweets['worldwide'] = tweets['user.location'].str.lower().str.contains("worldwide")

最终的计数出现了:

tweets['worldwide'].value_counts()


False    4998
 True      185
 Name: worldwide, dtype: int64