首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >熊猫,把元组列表变成DataFrame尴尬的专栏标题。

熊猫,把元组列表变成DataFrame尴尬的专栏标题。
EN

Stack Overflow用户
提问于 2018-09-10 19:11:10
回答 1查看 696关注 0票数 0

我有从usaddress库获得的解析地址的数据:https://github.com/datamade/usaddress

数据是元组列表。每个地址都有一个与其相关的列表:

代码语言:javascript
复制
[('Robie', 'BuildingName'),
('House,', 'BuildingName'),
('5757', 'AddressNumber'),
('South', 'StreetNamePreDirectional'),
('Woodlawn', 'StreetName'),
('Avenue,', 'StreetNamePostType'),
('Chicago,', 'PlaceName'),
('IL', 'StateName'),
('60637', 'ZipCode')]

但是,对于某些地址,某个字段可能存在,也可能不存在。我想将这些数据导出到包含所有列标题( DataFrame,BuildingName,Address...ect)的熊猫栏中,如果该列标题不在列表中,则该单元格将保留为空白。

我现在拥有的是:

代码语言:javascript
复制
newAddr = []
for index, row in df.iterrows():
    newAddr.append(usaddr.parse(row['FullAddress']))

df2 = DataFrame(newAddr)

但是,这会生成一个没有列标题的文件,也没有一个真正的逐行组织,因为缺少的值只是将所有内容都移到了上面。

我们非常感谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-10 21:34:18

假设如下:

  • 您使用usaddress.tag
  • 具有处理可能从usaddress.tag引发的错误的方法
  • 只需要从usaddress.tag返回的第一部分

然后,您可以执行以下操作

代码语言:javascript
复制
import usaddress
import pandas as pd

# your list of addresses dataframe
df = pd.read_csv('PATH_TO_ADDRESS_CSV')

# list of orderedDict
ordered_dicts = []

# loop through addresses and get respective information
for index, row in df.iterrows():
    # here you should try/except for cases that fail
    addr = usaddress.tag(row['FullAddress'])

    # append to list
    ordered_dicts.append(addr[0])

# **get all relevant keys in your list
cols = set().union(*(d.keys() for d in ordered_dicts))

# create new dataframe
df_new = pd.DataFrame(ordered_dicts, columns=cols)

df_new.to_csv('PATH_TO_DESIRED_CSV_ENDPOINT')

**代表了函数的这一部分的替代解决方案。因为我们确切地知道.tag函数可以返回的所有列,所以您可以首先将列设置为这样(请参阅所有标记这里和API 这里):

代码语言:javascript
复制
cols = ['AddressNumberPrefix', 'AddressNumber', ...]

我希望这能帮到你!要知道,当您使用字典执行pd.DataFrame并指定确切的列时,它将自动使用pd.NaN填充不存在的键。

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

https://stackoverflow.com/questions/52264065

复制
相关文章

相似问题

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