相关文章推荐
豪爽的烈马  ·  Vue3 + ...·  10 月前    · 
打酱油的松球  ·  Python ...·  1 年前    · 

pandas.append改为concat

1.background

pandas会在未来的版本中remove掉append,建议concat代替
但concat用于dataframe和dataframe之间的连接,用于一行series添加到dataframe时,需要进行转换

2.solution

把一行weights放到weights_pd表里

weights_pd=pd.concat([weights_pd, weights.to_frame().T], axis=0)
  • 使用to_frame()把series转为dataframe
  • 使用.T把dataframe变成一行的形式
  • 在concat函数总定义axis=0,进行按行拼接
快速浏览一、append与assign1.append方法(加行)(a)append利用序列添加行(必须指定name)(b)append用DataFrame添加表(多行)2.assign方法(加列)二、combine与update(表的填充)1.comine方法(a)填充对象(b)一些例子(c)combine_first方法2. update方法(a)三个特点(b)例子三、concat方法四、merge与join1.merge函数2. join函数五、问题与练习阶段总结Reference #从清华镜像拉装1.0.3版本的Pandas !pip install -i https://pypi.t
创建2个DataFrame: >>> df1 = pd.DataFrame(np.ones((4, 4))*1, columns=list('DCBA'), index=list('4321')) >>> df2 = pd.DataFrame(np.ones((4, 4))*2, columns=list('FEDC'), index=list('6543')) >>> df3 = pd.DataFrame(np.ones((4, 4))*3, columns=list('FEBA'), index=list('6521')) D C B A 4 1.0 1.0 1
从文档中,我们可以推测出这并不是一个原地 操作,而是会返回一个新的DataFrame, 目测是通过类似拼接的方式实现的,所以正确的使用方法应该是: df_out=df_out.append({'err':err,'predicted':corrected_sent,'target':cor}, ignore_index=True)
concat concat⽅法类似于数据库中的不去重的全连接(UNION ALL),可以指定按某个轴连接axis(参数0/1等数字),也可以指定另一个轴连接的⽅式join(参数可选择outer/inner)。 concat的语法: pandas.concat(objs, axis=0, join='outer', ignore_index=False,keys=None, levels=None, names=None, verify_integrity=False, copy=True):
这个警告是因为 `frame.append` 在未来的 pandas 版本中将被删除,应该改为使用 `pandas.concat`。`frame.append` 主要是用于将数据添加到现有 DataFrame 中,而 `pandas.concat` 则可以用于连接多个 DataFrame。如果你在代码中使用了 `frame.append`,建议使用 `pandas.concat` 来代替它,以避免在未来的版本中出现问题。你可以使用下面的代码来替换: ```python import pandas as pd df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]}) df2 = pd.DataFrame({'A': [5, 6], 'B': [7, 8]}) # 使用 frame.append df = df1.append(df2) # 替换为 pandas.concat df = pd.concat([df1, df2])