Python 根据dataframe另一列值计数将dataframe列转换为2d numpy数组
我有一个数据帧 df= 我试图将A4列提取到numpy数组,并处理具有特定行数的2d numpy数组。行号来自S列的值计数。 我正在搜索的数组是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],
[[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]