Pandas创建包含行计数的列

0 投票
1 回答
2202 浏览
提问于 2025-04-18 15:57

我该如何在pandas中重现这个查询呢?

SELECT (SELECT COUNT(1) FROM table t1 WHERE t1.full_name = t2.full_name) FROM table t2;

我想统计那些有相同值的行的数量,并把这个值保存到数据框里。

到目前为止,我尝试过的方式是

df.full_name.values_count() 

这让我得到了一个唯一值的列表,然后我试着用df.merge把它和原来的数据合并,但没有成功。

1 个回答

1

首先,把值的计数(这是一种叫做Series的数据结构)放进一个DataFrame里。

counts = pd.DataFrame(df['full_name'].value_counts(), columns=['num_unique'])

然后,进行合并,左边用原来的列,右边用索引。

df = df.merge(counts, left_on=['full_name'], right_index=True)

撰写回答