在Julia的Genie应用中如何给DataFrameRow添加带值新列?
解决方案:给DataFrame单行添加新列
问题根源
你之前的代码报错,是因为data[1,:]返回的是DataFrameRow——它是原DataFrame的单行引用(视图),不是独立的DataFrame对象,设计上不支持直接插入新列的操作。
最优实现方法
如果你的需求是给原DataFrame的第一行新增列并赋值,直接操作原DataFrame是最高效的方式:
data = DataFrame( column = [1,2,3,4], value = [10,20,30,40] ) new_number = 100 # 1. 先插入新列,用missing填充所有行(也可以替换为其他默认值,比如0) insertcols!(data, 3, :new_column => missing) # 2. 给第一行的新列赋值 data[1, :new_column] = new_number
运行后原DataFrame结构如下:
| column | value | new_column |
|---|---|---|
| 1 | 10 | 100 |
| 2 | 20 | missing |
| 3 | 30 | missing |
| 4 | 40 | missing |
可选方案:单独处理单行DataFrame
如果你需要把第一行单独提取为独立的DataFrame并添加列,可以先将DataFrameRow转换为真正的DataFrame对象:
data_row = DataFrame(data[1,:]) # 用DataFrame()包裹,生成独立的单行DataFrame insertcols!(data_row, 3, :new_column => new_number)
这样得到的data_row是包含新列的单行DataFrame,不会影响原DataFrame。
内容的提问来源于stack exchange,提问作者awoj
相关产品推荐
相关产品推荐

