Pandas创建包含行计数的列
我该如何在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)