繁体   English   中英

我们如何计算数据框中的项目并将结果分配给数据框中的新列?

[英]How can we do counts of items in a data frame and asign results to a new column in the dataframe?

我有看起来像这样的街道地址。

250 EAST HOUSTON STREET
211 EAST 3RD STREET
182 EAST 2ND STREET
511 EAST 11TH STREET
324 EAST 4TH STREET
324 EAST 4TH STREET
324 EAST 4TH STREET
324 EAST 4TH STREET
324 EAST 4TH STREET
324 EAST 4TH STREET
324 EAST 4TH STREET
324 EAST 4TH STREET
754 EAST 6TH STREET

我怎样才能在同一个数据框中获得计数,像这样?

250 EAST HOUSTON STREET 3
211 EAST 3RD STREET     1
182 EAST 2ND STREET     1
511 EAST 11TH STREET    1
324 EAST 4TH STREET     8
324 EAST 4TH STREET     8
324 EAST 4TH STREET     8
324 EAST 4TH STREET     8
324 EAST 4TH STREET     8
324 EAST 4TH STREET     8
324 EAST 4TH STREET     8
324 EAST 4TH STREET     8
754 EAST 6TH STREET     1

我要计算的字段名称是“街道”。 我发现了一些计算欺骗的代码,但它进行了分组并将所有内容都放入一个新的数据框中。 我想将计数分配给同一数据框中的新列。 谢谢!

使用groupby + transform 转换允许您将系列调用到新列。 如果您不使用转换,那么您有一个与数据框不匹配的合并系列,您的列将改为填充NaN值:

import pandas as pd
# df = pd.read_clipboard('\s\s+', header=None).rename({0: 'Street'}, axis=1) # how I read in your data from your StackOverflow question
df['Count'] = df.groupby('Street')['Street'].transform('count')
df
Out[1]: 
                     Street  Count
0   250 EAST HOUSTON STREET  1
1       211 EAST 3RD STREET  1
2       182 EAST 2ND STREET  1
3      511 EAST 11TH STREET  1
4       324 EAST 4TH STREET  8
5       324 EAST 4TH STREET  8
6       324 EAST 4TH STREET  8
7       324 EAST 4TH STREET  8
8       324 EAST 4TH STREET  8
9       324 EAST 4TH STREET  8
10      324 EAST 4TH STREET  8
11      324 EAST 4TH STREET  8
12      754 EAST 6TH STREET  1

我真的很陌生,试图在这个平台上帮助人们,所以请随时告诉我我没有在正确的地方寻找信息,但是你使用的是 Pandas 还是其他图书馆? 如果您使用的是 Pandas,我认为有一种称为 valuecount(可能是 value_count)的方法可能很有用。 对不起,我不能提供更多帮助,但我正在学习这里的绳索。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM