Pandas: рджреВрд╕рд░реЗ рдорд░реНрдЬ рдкрд░ рдкреНрд░рддреНрдпрдпреЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 10 рдлрд╝рд░ре░ 2015  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pandas-dev/pandas

рдореИрдВ рд▓рдЧрд╛рддрд╛рд░ рдорд░реНрдЬ рдСрдкрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдХрдИ рдбреЗрдЯрд╛рдлреНрд░реЗрдо рдХреЛ рдорд░реНрдЬ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдореИрдВ рдирдП рдорд░реНрдЬ рдХрд┐рдП рдЧрдП рдХреЙрд▓рдо рдирд╛рдореЛрдВ рдХреЗ рдирд╛рдо рдореЗрдВ рдПрдХ рдкреНрд░рддреНрдпрдп рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореЗрд░реЗ рдХреЛрдб рдХрд╛ рдПрдХ рд╕рд░рд▓реАрдХреГрдд рд╕рдВрд╕реНрдХрд░рдг рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

from pandas import *
f0 = DataFrame(columns=['data'], data=[1,2,3], index=['a','b','c'])
f1 = DataFrame(columns=['data'], data=[4,5,6], index=['c','b','a'])
f2 = DataFrame(columns=['data'], data=[7,8,9], index=['a','c','b'])
merged = f0
merged = merged.merge(f1, left_index=True, right_index=True, suffixes=("_0", "_1"))
merged = merged.merge(f2, left_index=True, right_index=True, suffixes=("", "_2"))
print merged.columns

рдЕрдЬрдЧрд░ 2.7 рдкрд░ рдкрд╛рдВрдбрд╛ 0.15.2 рдХреЗ рд╕рд╛рде рдпрд╣ рд░рд┐рдЯрд░реНрди:

Index([u'data_0', u'data_1', u'data'], dtype='object')

рдЬрдмрдХрд┐ рдореБрдЭреЗ рдЙрдореНрдореАрдж рдереА

Index([u'data_0', u'data_1', u'data_2'], dtype='object')
Reshaping Usage Question

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд▓рдЧрддрд╛ рд╣реИ рдЖрдк рдмрд╕ рдпрд╣реА рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

In [45]: pd.concat([f0,f1,f2],axis=1,ignore_index=True)
Out[45]: 
   0  1  2
a  1  6  7
b  2  5  9
c  3  4  8

рдкреНрд░рддреНрдпрдп рдХреЗрд╡рд▓ рддрднреА рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ рдЬрдм рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреЙрд▓рдо рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдкрд╣рд▓реЗ рдорд░реНрдЬ рдХреЗ рдмрд╛рдж рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ (рдЬрдм рддреАрд╕рд░реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ)

In [46]: merged1 = merged.merge(f1, left_index=True, right_index=True, suffixes=("_0", "_1"))

In [47]: merged1
Out[47]: 
   data_0  data_1
c       3       4
b       2       5
a       1       6

In [48]: merged1.merge(f2, left_index=True, right_index=True, suffixes=("", "_2"))
Out[48]: 
   data_0  data_1  data
a       1       6     7
c       3       4     8
b       2       5     9

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд▓рдЧрддрд╛ рд╣реИ рдЖрдк рдмрд╕ рдпрд╣реА рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

In [45]: pd.concat([f0,f1,f2],axis=1,ignore_index=True)
Out[45]: 
   0  1  2
a  1  6  7
b  2  5  9
c  3  4  8

рдкреНрд░рддреНрдпрдп рдХреЗрд╡рд▓ рддрднреА рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ рдЬрдм рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреЙрд▓рдо рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдкрд╣рд▓реЗ рдорд░реНрдЬ рдХреЗ рдмрд╛рдж рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ (рдЬрдм рддреАрд╕рд░реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ)

In [46]: merged1 = merged.merge(f1, left_index=True, right_index=True, suffixes=("_0", "_1"))

In [47]: merged1
Out[47]: 
   data_0  data_1
c       3       4
b       2       5
a       1       6

In [48]: merged1.merge(f2, left_index=True, right_index=True, suffixes=("", "_2"))
Out[48]: 
   data_0  data_1  data
a       1       6     7
c       3       4     8
b       2       5     9

рдЖрд╣ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВрдиреЗ рдЗрд╕ рддрдереНрдп рдХреЛ рдпрд╛рдж рдХрд┐рдпрд╛ рдХрд┐ рдкреНрд░рддреНрдпрдп рдХреЗрд╡рд▓ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреЙрд▓рдо рдирд╛рдореЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВред рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдорд╡рд░реНрддреА рд╕рдорд╛рдзрд╛рди рд╕рд░рд▓ рд╣реИред рдФрд░ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП: concat(...ign_index=True) рдЬреЛ рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЙрд╕рдХреЗ рдмрд┐рд▓реНрдХреБрд▓ рд╡рд┐рдкрд░реАрдд рд╣реИ, рд▓реЗрдХрд┐рди concat(...ign_index=False) рдХреЗ рд╕рд╛рде рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдмреЗрд╣рддрд░

рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдЖрдк рдЖрдорддреМрд░ рдкрд░ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреЙрд▓рдо рдирд╣реАрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ

рдЖрдк рдПрдХ рдмрд╣реБ рд╕реНрддрд░реАрдп рдкрд░рд┐рдгрд╛рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ - рдХреБрдВрдЬреА рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП concat

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

songololo picture songololo  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

tade0726 picture tade0726  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

nathanielatom picture nathanielatom  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

venuktan picture venuktan  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

matthiasroder picture matthiasroder  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ