如何向无数据行的pandas DataFrame添加固定值常量列
空DataFrame新增固定值列的实现方法
问题原因
你原来的代码无法生效的核心原因是:行数为0的空DataFrame不会在列赋值时自动扩展行数。直接给空df的新列赋值标量时,pandas没有匹配的行索引可以填充值,因此不会新增foo列,也就得不到预期结果。
可行的实现方案
下面是几个常用的实现方式,都可以得到你要的输出:
方法1:先扩展行再赋值
先给空df新增一行空数据,再给新列赋值:
import pandas as pd df = pd.DataFrame(columns = ['a','b','c']) # 新增索引为0的空行 df.loc[0] = pd.Series(dtype='object') df['foo'] = 'bar'
方法2:用reindex扩展行
用reindex方法直接把索引调整为[0],自动补空值,再赋值:
import pandas as pd df = pd.DataFrame(columns = ['a','b','c']) df = df.reindex([0]) df['foo'] = 'bar'
方法3:一次性拼接生成
如果不想分步操作,也可以直接拼接新列生成结果:
import pandas as pd df = pd.DataFrame(columns = ['a','b','c']) df = pd.concat([df, pd.DataFrame({'foo': ['bar']})], axis=1)
以上三种方法输出的结果都和预期一致:
a b c foo 0 NaN NaN NaN bar
内容的提问来源于stack exchange,提问作者ACan
相关产品推荐
相关产品推荐

