دمج صفيف الثعبان الباندا

0

أريد دمج البيانات التي قمت بجمعها من dandeader pandas على الويب حول الأسهم. ها هو الكود الخاص بي:

ntes = web.DataReader('ntes', 'morningstar', '5-5-2015', '7-27-2018')
print(type(ntes))
spx = web.DataReader('spx', 'morningstar', '5-5-2015', '7-27-2018')

ntes.rename(columns={'Close': 'CloseNTES'}, inplace=True)
spx.rename(columns={'Close': 'CloseSPX'}, inplace=True)
ntes=ntes['CloseNTES']
spx=spx['CloseSPX']
print( ntes.head())
print(spx.head())
df1=pd.concat([ntes, spx], axis=1, ignore_index=False)
print(df1.head())

حصلت على مصفوفة واحدة ولكن أولاً انتقل إلى قيم حول سهم واحد ، ثم من سهم آخر حتى لا تكون هناك قيم من كلا السهمين في صف واحد. إليك ما تم طباعته.

Symbol  Date      
ntes    2015-05-05    125.295
        2015-05-06    123.300
        2015-05-07    127.500
        2015-05-08    129.230
        2015-05-11    128.890
Name: CloseNTES, dtype: float64
Symbol  Date      
spx     2015-05-05    2089.4601
        2015-05-06    2080.1450
        2015-05-07    2087.9973
        2015-05-08    2116.0951
        2015-05-11    2105.3275
Name: CloseSPX, dtype: float64
                   CloseNTES  CloseSPX
Symbol Date                           
ntes   2015-05-05    125.295       NaN
       2015-05-06    123.300       NaN
       2015-05-07    127.500       NaN
       2015-05-08    129.230       NaN
       2015-05-11    128.890       NaN

1 إجابة

0

تحتوي إطارات البيانات على فهارس متعددة (المستوى الأول هو "spx" لإطار البيانات الأول و "ntes" للثاني). لجعلها متوافقة ، قم بتحويل مستوى "الرمز" للفهرس المتعدد إلى عمود ثم قم بتسلسل:

pd.concat([df.reset_index(level=0), df1.reset_index(level=0)],axis=1)
#           Symbol  CloseNTES Symbol   CloseSPX
#Date                                          
#2015-05-05   ntes    125.295    spx  2089.4601
#2015-05-06   ntes    123.300    spx  2080.1450
#2015-05-07   ntes    127.500    spx  2087.9973
#2015-05-08   ntes    129.230    spx  2116.0951
#2015-05-11   ntes    128.890    spx  2105.3275
:مؤلف

أسئلة ذات صلة

فوق
قائمة طعام