熊猫数据框追加函数添加具有NaN值的空列

时间:2020-05-13 13:03:18

标签: python pandas dataframe

我有以下代码:

ruby: ../ruby-2.7.0/thread_pthread.c:1935: rb_sigwait_fd_put: Assertion `old == th' failed.
Aborted

这给了我以下输出:

graphdata = pd.DataFrame(columns=['MaturityGroup','SumOfNetAssetPercent'] )
print(graphdata.dtypes)
graphdata["SumOfNetAssetPercent"] = graphdata["SumOfNetAssetPercent"].astype(float)
print(graphdata.dtypes)
graphdata.info()
graphdata = graphdata.append([['Remainder', filterdata[FilterRemainder]['NetAssetPercent'].sum()]
                          , ['<1 Yr', filterdata[Filter0to1Year]['NetAssetPercent'].sum()]
                          , ['1 to <3 Yrs', filterdata[Filter1to3Year]['NetAssetPercent'].sum()]
                          , ['3 to <5 Yrs', filterdata[Filter3to5Year]['NetAssetPercent'].sum()]
                          , ['5 Yrs & Above', filterdata[Filter5YrNAbove]['NetAssetPercent'].sum()]]
                            , ignore_index=True)

print(graphdata)

我的问题是,为什么“追加”在我的空数据框中添加两个额外的空NaN列?

1 个答案:

答案 0 :(得分:0)

之所以会添加两行,是因为您要追加与原始数据框名称不同的行。

例如:

df = pd.DataFrame(columns=["a", "b"])
print(df)
Empty DataFrame
Columns: [a, b]
Index: []

创建一个要追加但不包含列名的数据框。

df_other = pd.DataFrame([["remainder", 5.3], ["more", 2.2], ["some", 66]])
print(df_other)
          0     1
0  remainder   5.3
1       more   2.2
2       some  66.0

现在将它们附加...

df = df.append(df_other)
print(df)
     a    b          0     1
0  NaN  NaN  remainder   5.3
1  NaN  NaN       more   2.2
2  NaN  NaN       some  66.0

现在将附加数据框更改为包括列。

df_other = pd.DataFrame(
    [["remainder", 5.3], ["more", 2.2], ["some", 66]], columns=["a", "b"]
)
print(df_other)
          a     b
0  remainder   5.3
1       more   2.2
2       some  66.0

结果是。

df = df.append(df_other)
print(df)
           a     b
0  remainder   5.3
1       more   2.2
2       some  66.0