의 대응 값에 대하여 하나 개의 컬럼의 고유 값에 의해 크기 점 산점도 :팬더 : 다음 샘플 Dataframe 감안할 때 다른 열
df = pd.DataFrame({ 'A' : [ 1, 1, 1, 2, 2, 2, 3, 3, 3 ],
'B' : [ 'x', 'y', 'z', 'x', 'y', 'y', 'x', 'x', 'x' ] })
나는 B의 고유 값들의 산점도를 생성하고자합니다 (함께
A = [ 1, 1, 1, 2, 2, 3 ]
B = ['x', 'y', 'z', 'x', 'y', 'x']
Bsize = [ 1, 1, 1, 1, 2, 3]
내가 해봤 GROUPBY와 함께이 일을 :
,536,913 나는 다음과 같은 세 가지 목록을 얻을하려는의 해당 값에 대해) 고유 값의 각 그룹 내에서 B 값의 숫자로 크기 점, 그래서 그룹의 63,210group = df.groupby(['A','B'])
키는 내가 원하는 데이터를 포함하지만, 그들은 주문하지 않을 :
group.group.keys()
[(1, 2), (1, 3), (3, 1), (2, 1), (2, 2), (1, 1)]
'첫 번째'방법은 Dataframe 모양을 반환하지만 난에 액세스 할 수 없습니다 'A'와 'B'키 : 나는 이름과 그룹을 반복하면
group.first()['A']
...
KeyError: 'A'
는 상황이 주문하는 것, 그래서 수행하여 내가 원하는 것을 얻을 수 있습니다
A = []
B = []
for name, _ in group:
A.append(name[0])
B.append(name[1])
,
나는 다음을 수행하여 Bsize 목록을 얻을 수 있습니다 :
group['B'].count().values
array([1, 1, 1, 1, 2, 3])
그러나, 이것은 극단적 어설픈 것 같다 내가 제대로 그룹을 사용하는 방법을 이해하지 않은 나에게 제안합니다.
size(). reset_index (name = 's')'에는 모든 정보가 들어 있으므로'np.unique'를 제거하는 것이 좋습니다. – unutbu
@unutbu 네, 맞습니다! ;-) –