Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 基于其他列中的值在Python3(熊猫)数据帧中创建新列_Python 3.x_Pandas_Dataframe - Fatal编程技术网

Python 3.x 基于其他列中的值在Python3(熊猫)数据帧中创建新列

Python 3.x 基于其他列中的值在Python3(熊猫)数据帧中创建新列,python-3.x,pandas,dataframe,Python 3.x,Pandas,Dataframe,我有一个pandas dataframe,需要根据dataframe中其他列的值创建新列。这是数据帧 个人城市国家 美国伊利诺伊州芝加哥 美国亚利桑那州凤凰城B酒店 C美国加利福尼亚州圣地亚哥 我想根据state中的值创建两个新列 创建新列df[“城北”]=df[“城市”]其中state=“伊利诺伊” 创建新列df[“城市南部”]=df[“城市”],其中州不等于“伊利诺伊州” 我试过了 df.loc[((df['state'] == 'Illinois')), 'city-north'] = d

我有一个pandas dataframe,需要根据dataframe中其他列的值创建新列。这是数据帧

个人城市国家

美国伊利诺伊州芝加哥

美国亚利桑那州凤凰城B酒店

C美国加利福尼亚州圣地亚哥

我想根据state中的值创建两个新列

  • 创建新列df[“城北”]=df[“城市”]其中state=“伊利诺伊”
  • 创建新列df[“城市南部”]=df[“城市”],其中州不等于“伊利诺伊州”
  • 我试过了

    df.loc[((df['state'] == 'Illinois')), 'city-north'] = df['city']
    
    df.loc[((df['state'] != 'Illinois')), 'city-south'] = df['city']
    

    但第二行代码中不等于条件的部分不会创建“city south”列。如果没有创建匹配条件或缺少值,请帮助我正常工作:

    df.loc[df['state'] == 'Illinois', 'city-north'] = df['city']
    df.loc[df['state'] != 'Illinois', 'city-south'] = df['city']
    
    print (df)
      person       city       state country city-north city-south
    0      A    Chicago    Illinois     USA    Chicago        NaN
    1      B    Phoenix     Arizona     USA        NaN    Phoenix
    2      C  San Diego  California     USA        NaN  San Diego
    
    如果不匹配的行需要空值字符串:

    df['city-north'] = np.where(df['state'] == 'Illinois', df['city'], '')
    df['city-south'] = np.where(df['state'] != 'Illinois', df['city'], '')
    
    print (df)
      person       city       state country city-north city-south
    0      A    Chicago    Illinois     USA    Chicago           
    1      B    Phoenix     Arizona     USA               Phoenix
    2      C  San Diego  California     USA             San Diego