我想将空行(填充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!
答案 0 :(得分:8)
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)
您可以.loc
与reindex
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