在Pandas中,如果你想高效地向一个DataFrame添加一行数据,千万不要使用.append()方法!因为这种方法需要创建新的对象然后再赋值,效率较低,尤其是DataFrame较大时。
本文将介绍3种Pandas添加一行数据更高效的方法:
1. .loc或.iloc直接修改
你可以直接使用.loc根据标签或.iloc根据整数位置直接修改DataFrame,例如:
a.loc[a.index[-1] + 1] = 1 # .loc和索引加1
或
a.iloc[-1, :] = 1 # .iloc和切片
这种直接修改的方式避免了创建新对象的开销,所以效率更高。
2. 先获取最后一行索引,然后创建新索引插入
如果DataFrame索引不是简单整数,这种方法更适用。你可以:
先获取最后一行索引:
last_idx = a.index[-1]
创建新的索引为其加1:
new_idx = last_idx + pd.offsets.BDay() # 增加一天
然后在DataFrame插入新行:
a.loc[new_idx] = 1
3. .reindex()方法
你也可以使用.reindex()方法插入一行,示例:
a = a.reindex(a.index.append(pd.Index([last_idx + 1])))
a.loc[last_idx + 1, :] = 1
这重新索引并创建新的行,然后赋值。
综上,Pandas添加一行数据高效方法:
- .loc或.iloc直接修改
- 获取最后一行索引并创建新索引插入
- .reindex()重索引并插入
而不是.append(),这可以大大提高效率。