在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

关于python - 在“df.size()”函数之后处理新列?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34089087/

10-12 21:26