我想将空行(填充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
Run Code Online (Sandbox Code Playgroud)
你知道更优雅的方式吗?
为什么不可能做类似的事情
T.loc[missing] = np.NaN
Run Code Online (Sandbox Code Playgroud)
谢谢!
您可以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
Run Code Online (Sandbox Code Playgroud)
基本上loc寻找传入的标签,遗憾的是,使用放大设置仅适用于单行标签.
执行上述操作会更有效,这里我们使用union当前索引和缺失值,并将这些值用于reindexdf,其中行不存在NaN值插入.