如何简洁地将Pandas Series追加到DataFrame每行末尾并生成新列?
解决方法
给你几个简洁的办法实现需求:
方法1:使用df.assign()
这是最简洁的方式之一,直接把Series拆成关键字参数传给assign,一次性添加所有新列:
import pandas as pd # 示例数据 df = pd.DataFrame({'col1': [1, 2, 3], 'col2': [4, 5, 6]}) ser = pd.Series({'new_col_A': 10, 'new_col_B': 20, 'new_col_C': 30}) # 一次性添加所有列 df = df.assign(**ser)
方法2:转成单行DataFrame后拼接
把Series转换成单行的DataFrame,再和原DataFrame按列拼接,自动将单行值广播到所有行:
# 将Series转为单行DataFrame ser_single_row = ser.to_frame().T # 按列拼接,自动对齐索引并重复单行内容 df = pd.concat([df, ser_single_row.reindex(df.index)], axis=1)
方法3:直接批量赋值列
利用Pandas的广播特性,直接给DataFrame添加Series索引对应的列,并赋值Series的值,会自动把值填充到每一行:
df[ser.index] = ser.values
这三种方法都能替代逐列赋值的繁琐操作,根据自己的习惯选择即可。
内容的提问来源于stack exchange,提问作者JubJub
相关产品推荐
相关产品推荐

