根据每一行中的字符串对数据进行分类

时间:2019-10-16 05:34:29

标签: python-3.x string pandas dataframe

我有以下数据框:

 raw_data = {'name': ['Willard', 'Nan', 'Omar', 'Spencer'],
'Last_Name': ['Smith', 'Nan', 'Sheng', 'Poursafar'],
'favorite_color': ['blue', 'red', 'Nan', "green"],
'Statues': ['Match', 'Mis-Match', 'Match', 'Mis_match']}
df = pd.DataFrame(raw_data, columns = ['name', 'age', 'favorite_color', 'grade'])
df

我想执行以下任务:

  1. 分隔包含匹配和不匹配的行
  2. 创建一个仅包含姓氏和名字的人,并喜欢一种颜色(除了nan之外的其他颜色)的人。

你们能帮我吗?

1 个答案:

答案 0 :(得分:1)

使用boolean indexing

df1 = df[df['Statues'] == 'Match']
df2 = df[df['Statues'] =='Mis-Match']

如果缺少的值不是字符串,请使用Series.isnaSeries.notna

df3 = df[df['Name'].isna() & df['Last_NameName'].isna() & df['favorite_color'].notna()]

如果Nan是字符串,则用Nan进行比较:

df3 = df[(df['Name'] == 'Nan') & 
         (df['Last_NameName'] == 'Nan') &
         (df['favorite_color'] != 'Nan')]