首页 > 解决方案 > 如何使用创建的邮政编码列表过滤人口普查数据(来自 API)?

问题描述

我使用人口普查包装器从人口普查 api 中提取数据,我想用我编译的 zip 列表过滤掉这些数据。

所以我试图从人口普查的拉取请求数据中过滤数据。我有一个我想要使用的 zip 的 csv 文件,我已经将它放入列表中。我尝试了一些方法,例如将人口普查放入数据框中并尝试按我的列表过滤邮政编码列,但我认为我的语法不正确。

这只是我拉的测试数据,

census_data = c.acs5.get(('NAME', 'B25034_010E'),
           {'for': 'zip code tabulation area:*'})
census_pd = census_pd.rename(columns={"NAME": "Name", "zip code tabulation area": "Zipcode"})

censusfilter = census_pd['Zipcode'==ziplst]

所以我尝试了这种方式,并且我尝试了一个 for 循环,在该循环中我使用 census_pd['Zipcode'] 和一个内部 for 循环使用 if 语句(如 zip1 == zip2 附加到列表)遍历列表。

我的依赖

# Dependencies

import pandas as pd
import requests
import json
import pprint
import numpy as np
import matplotlib.pyplot as plt
import requests
from census import Census
import gmaps
from us import states

# Census & gmaps API Keys
from config import (api_key, gkey)
c = Census(api_key, year=2013)

# Configure gmaps
gmaps.configure(api_key=gkey)

如前所述,我想过滤掉我可能从特定于我使用的邮政编码的人口普查数据中提取的任何数据

标签: pythonpandasapicensus

解决方案


目前尚不清楚您的数据是什么样的。我猜您有一个标量列,并且您想使用列表过滤该列。如果这是问题,那么您可以使用isin内置方法来过滤数据框。

import pandas as pd

data = {'col': [2, 3, 4], 'col2': [1, 2, 3], 'col3': ["asd", "ads", "asdf"]}
df = pd.DataFrame.from_dict(data)
random_list = ["asd", "ads"]

df_filtered = df[df["col3"].isin(random_list)]

推荐阅读