2017-11-22 4 views
-1

나는 다음과 같은 두 가지 dataframe 있습니다어떻게 다른 열을 기반으로 한 열의 데이터를 계산할 수 있습니까?

df1 = DataFrame({'a': np.random.randint(10, size=2)}) 
df2 = DataFrame({'a': np.random.randint(10, size=100)}) 

가 DF1의 두 숫자이며, 내가 DF2의 두 숫자 '양을 계산합니다. 대답은 df1 [ 'a']의 오른쪽에 있습니다.

에 대해 사용하지만 오류가 있습니다. 값의 길이가 색인의 길이와 일치하지 않습니다.

누구나이 질문을 어떻게 풀어 낼 수 있습니까?

나는 df2 [ 'a']. isin (df1 [ 'a']). sum()을 사용하지만 두 개의 숫자가 합쳐진 결과를 알려줍니다. 만약 내가 제대로 이해하고

 
No Amount 
8 5 
1 5 

답변

2
df2.a.value_counts().reindex(df1.a) 
Out[369]: 
a 
4 11 
5  5 
Name: a, dtype: int64 

추가 sum

df2.a.value_counts().reindex(df1.a).sum() 
Out[370]: 16 
+0

답변 해 주셔서 감사합니다. 하지만 여전히 문제가있다, 두 금액이 동일합니다, 하나가 잘못되었습니다 –

+0

@yuchenhuang 내 코드의 첫 번째 라인을 확인 .. – Wen

+0

그것은 완벽하게 내 문제를 해결, 정말 정말 고마워요 !!!!!! –

1

:

 
No Amount 
8 3 
1 2 

대신 :

내가 좋아하는 결과 원하는

In [22]: df2['a'].isin(df1['a']).sum() 
Out[22]: 18 
+0

답장을 보내 주셔서 감사합니다. 귀하의 방법을 사용하지만 그 결과가 정확하지 않습니다. 문제는 두 금액이 같고 하나는 맞지만 다른 하나는 맞지 않으며 숫자가 동일하다는 것입니다. –

관련 문제