Python 根据dataframe另一列值计数将dataframe列转换为2d numpy数组

Python 根据dataframe另一列值计数将dataframe列转换为2d numpy数组,python,pandas,numpy,Python,Pandas,Numpy,我有一个数据帧 df= 我试图将A4列提取到numpy数组,并处理具有特定行数的2d numpy数组。行号来自S列的值计数。 我正在搜索的数组是 [[3, 5, 7, 10], [12, 15, 1], [2, 3, 4, 5], [6]] 什么是最具python风格的方式?你可以做groupby out = df.groupby('S')['A4'].agg(list).tolist() Out[426]: [[3, 5, 7, 10], [2, 3, 4, 5], [12, 15, 1],

我有一个数据帧 df=

我试图将A4列提取到numpy数组,并处理具有特定行数的2d numpy数组。行号来自S列的值计数。 我正在搜索的数组是

[[3, 5, 7, 10], [12, 15, 1], [2, 3, 4, 5], [6]]

什么是最具python风格的方式?

你可以做
groupby

out = df.groupby('S')['A4'].agg(list).tolist()
Out[426]: [[3, 5, 7, 10], [2, 3, 4, 5], [12, 15, 1], [6]]

您可以执行
groupby

out = df.groupby('S')['A4'].agg(list).tolist()
Out[426]: [[3, 5, 7, 10], [2, 3, 4, 5], [12, 15, 1], [6]]
数据:

df=pd.DataFrame({'S':{0:1,1:1,2:1,3:1,4:3,5:3,6:3,7:2,8:2,9:2,10:2,11:4},'A4':{0:3,1:5,2:7,3:10,4:12,5:15,6:1,7:3,9:4,10:5,11:6},'P':{
df

数据:

df=pd.DataFrame({'S':{0:1,1:1,2:1,3:1,4:3,5:3,6:3,7:2,8:2,9:2,10:2,11:4},'A4':{0:3,1:5,2:7,3:10,4:12,5:15,6:1,7:3,9:4,10:5,11:6},'P':{
df


它没有给出numpy数组。它给出了一个列表?@MertAçikel正确,numpy数组需要每个子数组具有相同的大小,或者它只是一个列表数组,我建议保留它,因为我很快就理解了您在建议中的意思。非常有用。它不是给numpy数组。它给出了一个列表?@MertAçikel正确,numpy数组需要每个子数组具有相同的大小,或者它只是一个列表数组,我建议保留它,因为我很快就理解了您在建议中的意思。非常有用。
    S   A4  P
0   1   3   7
1   1   5   4
2   1   7   5
3   1   10  6
4   3   12  2
5   3   15  3
6   3   1   7
7   2   2   4
8   2   3   5
9   2   4   6
10  2   5   2
11  4   6   3
df.groupby("S").apply(lambda df:df.A4.to_list())
S
1    [3, 5, 7, 10]
2     [2, 3, 4, 5]
3      [12, 15, 1]
4              [6]