一、问题介绍
场景:在使用python的pandas库进行数据处理时,对某个DataFrame进行添加行操作,使用append函数进行实现。
使用方式:
data = pd.read_csv("product.csv", encoding='utf-8')
new_line = {"id":1, "name":"peach"}
data.append(new_line, ignore_index=True)
问题:程序未报错但是DataFrame的值未发生改变
二、append用法
DataFrame.append(other, ignore_index=False, verify_integrity=False, sort=None)
功能说明:向dataframe对象中添加新的行,如果添加的列名不在dataframe对象中,将会被当作新的列进行添加
参数 | 解释 |
---|---|
other | 新行数据,可以是DataFrame、series、dict、list |
ignore_index | 默认值为False,如果为True则不使用index标签 |
verify_integrity | 默认值为False,如果为True当创建相同的index时会抛出ValueError的异常 |
sort | boolean,默认是None |
三、错误原因&解决方案
原因:append函数返回一个添加了新行的对象(新DataFrame),函数的调用者(原DataFrame)不发生改变。
正确用法:将操作结果赋值给目标DataFrame,data = data.append(new_line, ignore_index=True)
data = pd.read_csv("product.csv", encoding='utf-8')
new_line = {"id":1, "name":"peach"}
data = data.append(new_line, ignore_index=True)
感想:感觉有点反智,浪费了一个多小时,只想报之以呵呵