我有一个包含许多列的大型 Dataframe 。
对于 Dataframe 中的每一行/索引,我做一些操作,读入一些辅助数据,等等,并得到一个新值。有没有办法把这个新值添加到正确行/索引的新列中?
我可以使用.assign来添加一个新列,但由于我是在遍历行,并且一次只为一个值生成要添加的数据(生成它相当复杂),所以当它生成时,我希望立即将它添加到 Dataframe 中,而不是等到生成了整个序列。
这不起作用,并给出一个关键错误:
df['new_column_name'].iloc[this_row]=value
我需要先初始化列还是什么?
4条答案
按热度按时间62lalag41#
创建和填充一个只使用行号的新列有两个步骤.... a.(在这种方法中,没有使用iloc)
首先,使用行号获取行索引值
然后,将row index与loc函数一起使用,以引用特定行并添加新列/值
这两个步骤可以合并为一行,如下所示
yyyllmsg2#
如果您有一个 Dataframe
您可以使用
.loc
代替iloc,并使用行索引和列名,如df.loc[row_indexer,column_indexer]=value
输出:
mrphzbgm3#
如果您想将值添加到新列中的某些行,根据 Dataframe 其他单元格中的值,您可以这样做:
根据列"A"中的值在新列中添加值:
这将创建列"C",如果列"A"为2,则向其添加值100。
输出:
不必先初始化色谱柱。
but5z9lq4#
您可以使用内置的Pandas功能DataFrame.at
您可以选择多个索引或单个索引和列的列表