首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在字符串中包含变量名(df列标题)

如何在字符串中包含变量名(df列标题)
EN

Stack Overflow用户
提问于 2019-08-31 00:51:00
回答 1查看 348关注 0票数 0

我迭代了从2010到2018的范围。我希望将每年的结果作为数据框中的单独列包含在我的api pull中。我不知道如何命名列标题来做到这一点。

我尝试使用"Population {i}“作为列名。

代码语言:javascript
复制
for i in range(2010,2019):
    # Census & gmaps API Keys
    from config import (api_key, gkey)
    c = Census(api_key, year=i)

    # Configure gmaps
    gmaps.configure(api_key=gkey)
    # Run Census Search to retrieve data on all zip codes (2013 ACS5 Census)
    # See: https://github.com/CommerceDataService/census-wrapper for library documentation
    # See: https://gist.github.com/afhaque/60558290d6efd892351c4b64e5c01e9b for labels
    census_data = c.acs5.get(("NAME", "B19013_001E", "B01003_001E", "B01002_001E",
                              "B19301_001E",
                              "B17001_002E"), {'for': 'place:*','in': 'state:51'})

    # Convert to DataFrame
    census_pd = pd.DataFrame(census_data)

    # Column Reordering
    census_pd = census_pd.rename(columns={"B01003_001E": "Population[i]",
                                          "B01002_001E": "Median Age [i]",
                                          "B19013_001E": "Household Income [i]",
                                          "B19301_001E": "Per Capita Income [i]",
                                          "B17001_002E": "Poverty Count [i]",
                                          "NAME": "Name", "place": "Place [i]"})

    # Add in Poverty Rate (Poverty Count / Population)
    #census_pd["Poverty Rate"] = 100 * \
    #    census_pd["Poverty Count"].astype(int) / census_pd["Population"].astype(int)

    # Final DataFrame
    #census_pd = census_pd[["City", "Population", "Median Age", "Household Income",
     #/                      "Per Capita Income", "Poverty Count", "Poverty Rate"]]

    # Visualize
    print(len(census_pd))
    print (i)
    census_pd.head()
    census_pd.to_csv("test2.csv", index=False)
EN

回答 1

Stack Overflow用户

发布于 2019-08-31 00:55:21

要获取for循环的索引,请使用enumerate()

代码语言:javascript
复制
for loop_index, i in enumerate(range(2010,2019)):
    ...

如果您使用的是,则可以使用f- 3.6+。

代码语言:javascript
复制
census_pd = census_pd.rename(columns={"B01003_001E": f"Population[{loop_index}]", ...})

如果您使用的是早期版本的Python,那么可以使用多种方法进行字符串插值。这里有一种可能性:

代码语言:javascript
复制
census_pd = census_pd.rename(columns={"B01003_001E": "Population[{}]".format(loop_index), ...})

进一步阅读:Is there a Python equivalent to Ruby's string interpolation?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57730557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档