5
나는 두 dataframes (시리즈 실제로)는 GROUPBY 작업에 의해 생성 한
bw
l1
Consumer Discretionary 0.118718
Consumer Staples 0.089850
Energy 0.109988
Financials 0.159418
Health Care 0.115060
Industrials 0.109078
Information Technology 0.200392
Materials 0.035509
Telecommunications Services 0.030796
Utilities 0.031190
dtype: float64
내가 시도
l1
Consumer Discretionary 0.148655
Consumer Staples 0.067873
Energy 0.063899
Financials 0.095689
Health Care 0.116015
Industrials 0.181346
Information Technology 0.117715
Materials 0.043155
Telecommunications Services 0.009550
Utilities 0.156103
dtype: float64
pw
및 merge
을 를 사용하여
pd.merge(bw,pw,left_index=True,right_index=True)
나는 오류를
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/IPython/core/interactiveshell.py", line 2883, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-174-739bb362e06d>", line 1, in <module>
pd.merge(pw,attr,left_index=True,right_index=True)
File "/usr/lib/python2.7/dist-packages/pandas/tools/merge.py", line 39, in merge
return op.get_result()
File "/usr/lib/python2.7/dist-packages/pandas/tools/merge.py", line 185, in get_result
join_index, left_indexer, right_indexer = self._get_join_info()
File "/usr/lib/python2.7/dist-packages/pandas/tools/merge.py", line 251, in _get_join_info
left_ax = self.left._data.axes[self.axis]
IndexError: list index out of range
을 얻을하지만
bw = bw.reset_index()
pw = pw.reset_index()
mrg = pd.merge(pw,bw,on="l1")
을 할 때 작동합니다. 그렇기 때문에 코드를 여러 번 반복하는 것보다 코드를 읽기가 쉽지 않아서 내가 뭘 잘못하고 있고 코드의 첫 번째 버전을 얻을 수 있는지 알고 싶습니다. merging on indexes
.
감사
흥미로운 점은 나에게 잘 들립니다. 팬더의 어떤 버전을 사용하고 있습니까? 또한, 당신은 시도 할 수 있습니다 dataframe.join() ... bw.join (pw) –
안녕하세요 @ BobHaffner 자사의 우분투 저장소에서 팬더 내가 생각하는 0.14.1입니다. bw.join (pw)은 오류 'AttributeError :'Series '객체에'join '속성이 없기 때문에 병합 경로를 따라 가고 있습니다. –
좋습니다. 나는 그 조인이 유일한 일이라는 것을 잊었다. –