我有一个来自普查api的数据框架lisit,我每年都将其存储在列表中
因此,在for循环的末尾,我有一个列表,其中包含每年的数据帧,以及for循环旁边的年份列表
我遇到的问题是合并列表中的所有数据帧,同时用年份列表标记它们
因此,我尝试使用reduce函数,但它看起来只占用了我拥有的6个数据帧中的2个
concat只是将它们添加到数据帧中,而不进行任何标记或更改
# Dependencies
import pandas as pd
import requests
import json
import pprint
import requests
from census import Census
from us import states
# Census
from config import (api_key, gkey)
year = 2012
c = Census(api_key, year)
for length in range(6):
c = Census(api_key, year)
data = c.acs5.get(('NAME', "B25077_001E","B25064_001E",
"B15003_022E","B19013_001E"),
{'for': 'zip code tabulation area:*'})
data_df = pd.DataFrame(data)
data_df = data_df.rename(columns={"NAME": "Name",
"zip code tabulation area": "Zipcode",
"B25077_001E":"Median Home Value",
"B25064_001E":"Median Rent",
"B15003_022E":"Bachelor Degrees",
"B19013_001E":"Median Income"})
data_df = data_df.astype({'Zipcode':'int64'})
filtervalue = data_df['Median Home Value']>0
filtervalue2 = data_df['Median Rent']>0
filtervalue3 = data_df['Median Income']>0
cleandata = data_df[filtervalue][filtervalue2][filtervalue3]
cleandata = cleandata.dropna()
yearlst.append(year)
datalst.append(cleandata)
year += 1
因此,这将生成两个单独的列表,一个是年份列表,另一个是数据框列表
因此,我的输出要么是一个数据帧缺少数据帧条目,要么只是包含所有数据帧而不更改列
我想知道的是如何在一个列表中合并所有数据,但是如果可能的话,在合并时,datalst[0]将被标记为yearlst[0]
不需要年份列表,只需将^{} 年列添加到数据帧。另外,避免递增year并将其作为迭代器列。事实上,考虑链接你的过程:
相关问题 更多 >
编程相关推荐