Python 3.x 根据每行中的字符串对数据进行分类

Python 3.x 根据每行中的字符串对数据进行分类,python-3.x,string,pandas,dataframe,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(ra

我有以下数据帧:

 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
我想做以下任务:

  • 分隔包含匹配和不匹配的行
  • 制作一个类别,只包含名字和姓氏都是Nan并且喜欢某种颜色(除Nan以外的任何颜色)的人 你们能帮帮我吗

    使用:

    如果缺少的值不是字符串,请使用 :

    如果
    Nan
    s是字符串,则通过
    Nan
    进行比较:

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

    使用
    df['col'].notna()
    的任何理由!df['col'].isna()
    +1@TimBiegeleisen-它不是有效的代码,需要
    ~df['col'].isna()
    ,但simplier是
    df['favorite_color'].notna()
    @Sam-不,只有来自斯洛伐克的普通人;)
    df3 = df[df['Name'].isna() & df['Last_NameName'].isna() & df['favorite_color'].notna()]
    
    df3 = df[(df['Name'] == 'Nan') & 
             (df['Last_NameName'] == 'Nan') &
             (df['favorite_color'] != 'Nan')]