0

我正在尝试创建一个新列,指定基于状态字母代码列的状态区域。我已经查看了其他问题,并尝试使用 .apply 和使用 np.select ,如下所示。有人可以帮我修复代码,并解释幕后发生的事情背后的概念,以便我了解如何解决这个问题。

Kansas_City = ['ND', 'SD', 'NE', 'KS', 'MN', 'IA', 'MO'] 
Dallas = ['TX', 'OK', 'AR', 'LA', 'TN']
conditions = [df_merge['state_alpha'] in Kansas_City, df_merge['state_alpha'] in Dallas] 
outputs = ['Kansas City', 'Dallas'] 
df_merge['Region'] = np.select(conditions, outputs, 'Other') 

我试图关注的另一个问题是在这里-pandas 根据其他列的值创建新列/逐行应用多列的函数

state_alpha   Region
'MN'          Kansas City
'TX'          Dallas
'IA'          Kansas City
'NE'          Kansas City
4

1 回答 1

1

希望这可以帮到你;

    df_merge['Region'] = df_merge['state_alpha'].apply(lambda x: 
    'Kansas City' if x in Kansas_City
    else 'Dallas' if x in Dallas
    else 'Others')

您可以使用 apply 将数据传递给函数。这可用于列和行。

请参考https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.apply.html

于 2020-02-12T02:42:48.003 回答