将空行附加到pandas中的Dataframe

时间:2017-01-20 12:54:44

标签: python pandas

我想将空行(填充np.NaN)附加到pandas数据帧,目前只知道如何使用loc

T = pd.DataFrame(index=['a', 'b', 'c'], data={'Col0': 0, 'Col1': 1})
T
   Col0  Col1
a     0     1
b     0     1
c     0     1

missing = ['d', 'e']
for m in missing:
    T.loc[m] = np.NaN

  Col0  Col1
a   0.0   1.0
b   0.0   1.0
c   0.0   1.0
d   NaN   NaN
e   NaN   NaN

你知道更多优雅的方法吗?

为什么不能做像

这样的事情
T.loc[missing] = np.NaN

THX!

3 个答案:

答案 0 :(得分:8)

您可以reindex获取当前索引的union和缺失的行值:

In [281]:    
T.reindex(T.index.union(missing))

Out[281]:
   Col0  Col1
a   0.0   1.0
b   0.0   1.0
c   0.0   1.0
d   NaN   NaN
e   NaN   NaN

基本上loc查找传入的标签,遗憾的是setting with enlargement仅适用于单行标签。

执行上述操作会更有效,此处我们采用当前索引的union和缺失值,并将这些值用于reindex df,其中行不存在{插入{1}}值。

答案 1 :(得分:2)

您可以.locreindex

非常相似地使用df.loc[df.index.tolist() + missing]
map.data.loadGeoJson('google.json');

答案 2 :(得分:0)

如果您确实拥有数据框,则可以使用pd.concat

df = pd.DataFrame(index=missing)

pd.concat([T, df])

或者,您可以使用pd.DataFrame.append

df = pd.DataFrame(index=missing)

T.append(df)

两者都屈服:

   Col0  Col1
a   0.0   1.0
b   0.0   1.0
c   0.0   1.0
d   NaN   NaN
e   NaN   NaN