在"df.size()"函数之后操作一个新列?



在pandas模块中执行了如下所示的df.size()函数(df = Dataframe)后,我在标记为No.的列旁边获得了一个新列。但是,我不知道如何操作这个新专栏。这是因为我不知道该列的标签/键。

例如,我想将(在新列中)生成的值表示为新列中所有这些值之和的分数。我该怎么做?

JuncNo = pd.read_csv(filename)
JuncNo_group = JuncNo.groupby('No.')
JuncSize = JuncNo_group.size()
JuncSize.head(n=6)
No.
1   122
2  2136 
3   561
4    91
5    10
6     3
dtype: int64

您必须设置新系列的名称并重置索引:

JuncSize = JuncSize.groupby('No').size()
JuncSize.name = 'size'
JuncSize = JuncSize.reset_index()
print JuncSize

但是,如果您需要添加与原始数据帧具有相同行数的新列,您可以使用:

JuncSize['size'] = JuncSize.groupby('No').transform(np.size)

示例:

print JuncSize
  No Code
0  D   B2
1  B   B2
2  B   B3
3  B   B3
4  G   B3
5  B   B3
JuncSize['size'] = JuncSize.groupby('No').transform(np.size)
print JuncSize
  No Code size
0  D   B2    1
1  B   B2    4
2  B   B3    4
3  B   B3    4
4  G   B3    1
5  B   B3    4
JuncSize = JuncSize.groupby('No').size()
print JuncSize
No
B    4
D    1
G    1
JuncSize.name = 'size'
print JuncSize
No
B    4
D    1
G    1
Name: size, dtype: int64
JuncSize = JuncSize.reset_index()
print JuncSize
  No  size
0  B     4
1  D     1
2  G     1

最新更新