首页 文章

使用值列表填写空单元格

提问于
浏览
1

我有一个如下所示的数据框:

City         State              Country
      Chicago            IL        United States
       Boston                    
    San Diego            CA        United States
  Los Angeles            CA        United States
San Francisco
   Sacramento     
    Vancouver            BC               Canada
      Toronto

我有3个值列表,可以填写None单元格:

city = ['Boston', 'San Francisco', 'Sacramento', 'Toronto']
state = ['MA', 'CA', 'CA', 'ON']
country = ['United States', 'United States', 'United States', 'Canada']

这些列表中元素的顺序相互对应 . 因此,所有3个列表中的第一个项目彼此匹配,依此类推 . 如何填写空单元格并生成如下结果?

City         State              Country
      Chicago            IL        United States
       Boston            MA        United States
    San Diego            CA        United States
  Los Angeles            CA        United States
San Francisco            CA        United States
   Sacramento            CA        United States
    Vancouver            BC               Canada
      Toronto            ON               Canada

我的代码给了我一个错误,我被卡住了 .

if df.loc[df['City'] == 'Boston']:
    'State' = 'MA'

欢迎任何解决方案 . 谢谢 .

1 回答

  • 2

    创建两个映射,一个用于 <city : state> ,另一个用于 <city : country> .

    city_map = dict(zip(city, state))
    country_map = dict(zip(city, country))
    

    接下来,将 City 设置为索引 -

    df = df.set_index('City')
    

    并且,最后使用 map / replace 将键转换为适当的值 -

    df['State'] = df['City'].map(city_map)
    df['Country'] = df['City'].map(country_map)
    

    作为额外的最后一步,您可以在结尾处拨打 df.reset_index() .

相关问题