我在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
答案 0 :(得分:1)
您必须设置新系列的名称并重置索引:
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