在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/