繁体   English   中英

Pandas - 在 NaN 中添加新的字符串列结果

[英]Pandas - adding new string column results in NaN

我在 Pandas 数据框中分配新列时遇到了一些麻烦 - 我已经让它工作了,但想了解它为什么会发生;

当我第一次尝试将 ID 分配给一个字符串时,结果是 NaN..

df = pandas.json_normalize(data)
all_per = pandas.DataFrame()
for person in peopleList:
    all_per['id'] = person
    all_per['name'] = df['results.(id:'+person+').localizedFirstName'] + ' ' + \
                      df['results.(id:'+person+').localizedLastName']

结果:

    id          name
0  NaN    Adam Smith

但是,如果我将 ID 分配向下移动一点,它会起作用..

df = pandas.json_normalize(data)
all_per = pandas.DataFrame()
for person in peopleList:
    all_per['name'] = df['results.(id:'+person+').localizedFirstName'] + ' ' + \
                      df['results.(id:'+person+').localizedLastName']
    all_per['id'] = person

结果:

           name          id
0    Adam Smith    FQR4bL_80K

这占用了我很多时间,我不知道为什么会这样? 有任何想法吗?

您不能添加标量值。 您必须将person放入列表中:

df = pandas.json_normalize(data)
all_per = pandas.DataFrame()
for person in peopleList:
    all_per['id'] = [person]  # <- HERE
    all_per['name'] = df['results.(id:'+person+').localizedFirstName'] + ' ' + \
                      df['results.(id:'+person+').localizedLastName']

输出:

>>> all_per

           id        name
0  FQR4bL_80K  Adam Smith

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM