如何将Pandas DataFrame的行数添加至另一DataFrame作为新列
给Pandas DataFrame添加含总行数的新列
嘿,这事儿其实挺简单的,有好几种直观的方法能实现你要的效果——给现有DataFrame新增一列D,让每一行的D值都等于DataFrame的总行数(也就是你用df.shape拿到的1700)。我给你列几个最常用的方案:
方法1:直接赋值(最简单直接)
既然所有行的D值都一样,直接给新列赋值就行:
# 获取总行数 total_rows = df.shape[0] # 新增列D,所有行赋值为总行数 df['D'] = total_rows
df.shape[0]就是DataFrame的行数,这样一行代码就能搞定,原DataFrame会直接被修改。
方法2:用assign()方法(链式操作友好)
如果你不想直接修改原DataFrame,或者喜欢用链式调用的写法,assign()是个不错的选择:
total_rows = df.shape[0] # 返回一个带新列的新DataFrame,原df不变 new_df = df.assign(D=total_rows)
这种方式会返回一个新的DataFrame对象,原DataFrame保持原样,适合需要保留原始数据的场景。
方法3:用numpy.full()(更显式的写法)
如果你想更明确地指定填充的行数和值,可以借助numpy的full()函数:
import numpy as np total_rows = df.shape[0] df['D'] = np.full(total_rows, total_rows)
这个方法和第一种效果完全一致,只是写法更显式,适合需要和numpy配合的场景。
举个实际的小例子,假设你的原DataFrame是这样的:
A B C 0 30 40 text 1 30 40 text ...
执行上面任意一种方法后,你会得到:
A B C D 0 30 40 text 1700 1 30 40 text 1700 ...
所有行的D列都会是1700,完美符合你的需求~
内容的提问来源于stack exchange,提问作者PineNuts0
相关产品推荐
相关产品推荐

