将Pandas系列插入DataFrame会使所有值都为Nan

时间:2017-05-11 19:03:30

标签: python pandas python-3.6

正如标题所暗示的那样,我已将两个字典转换为系列,我尝试将它们插入到数据框df中。

first_series = pd.Series(first_dict, name='State Names')
second_series = pd.Series(second_dict, name='City Names')
column_loc=list(df.columns.values).index("ipAddr")
df.insert(column_loc+1, 'State Names', first_series)
df.insert(column_loc+2, 'City Names', second_series)

当我运行时,我得到了

              ipAddr State Names City Names    ...       
respID                                         ...        
10018         ***.**.**.**  NaN        NaN     ...        
10025         **.**.**.**   NaN        NaN     ...       

系列如下

10018       Bedford
10025     Vancouver
        ...    
10267        Lompoc
10280    Pikesville
Name: State Names, dtype: object
--------------------------------------------------------
10018          Ohio
10025    Washington
        ...    
10267    California
10280      Maryland
Name: City Names, dtype: object

我已经检查过字典和结果系列都已填充,所以我不明白为什么会这样。

谢谢。

编辑:这里提出了类似的问题,但没有回答When I insert pandas Series into dataframe, all values become NaN

1 个答案:

答案 0 :(得分:0)

事实证明,该系列的行数少于df。此外,在将其分配给df列时需要使用Series.values。