我试图理解这两种说法之间的区别
dataframe['newColumn'] = 'stringconst'
以及
for x in y:
if x=="value":
csv = pd.read_csv(StringIO(table), header=None, names=None)
dataframe['newColumn'] = csv[0]
在第一种情况下,pandas用常量值填充所有行,但在第二种情况下,它只填充第一行,并将NaN赋给其余行。为什么会这样?如何将第二种情况下的值赋给数据帧中的所有行
Tags:
因为
csv[0]
不是标量值。它是一个pd.Series
,当你用pd.Series
赋值时,它试图按索引对齐(pandas
的整点),可能除了第一行之外它到处都是NAN
,因为只有第一行的索引与pd.DataFrame
索引对齐。因此,考虑两个数据帧(注意,它们是除索引外的副本,索引移位了20):所以,你可以做一件事来分配整个列,就是简单地分配值:
或者,如果要在第一列中指定第一个值,则使用
iloc
或其他选择器实际选择第一个值,然后执行赋值:相关问题 更多 >
编程相关推荐