我想将空行(填充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
谢谢!
您可以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
寻找传入的标签,遗憾的是,使用放大设置仅适用于单行标签.
执行上述操作会更有效,这里我们使用union
当前索引和缺失值,并将这些值用于reindex
df,其中行不存在NaN
值插入.