Pandas: рдХреБрд▓ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐, рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрд┐рдирд╛ рдорд┐рд╢реНрд░рд┐рдд dtype DataFrame рдмрдирд╛рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 9 рдЬрдире░ 2015  ┬╖  58рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pandas-dev/pandas

рдЕрдкрдиреЗ рдмрд╛рд▓реЛрдВ рдХреЛ рдлрд╛рдбрд╝рдиреЗ рдХреЗ рдШрдВрдЯреЛрдВ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЗрд╕ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдкрд╣реБрдВрдЪрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕рдХреЗ рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рдХреЙрдкреА рдХрд┐рдП рдмрд┐рдирд╛ рдПрдХ рдорд┐рд╢реНрд░рд┐рдд dtype DataFrame рдмрдирд╛рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред рдпрд╛рдиреА, рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВ, рдпрджрд┐ рдЖрдк рдПрдХ рдорд┐рд╢реНрд░рд┐рдд dtype DataFrame рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред , рдЖрдк рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдПрдВрдЧреЗ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП np.empty рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ), рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╣рдореЗрд╢рд╛ рдЗрд╕ рдЕрд╕реНрдерд╛рдпреА рдХреА рдкреНрд░рддрд┐рдпрд╛рдВ рдмрдирд╛рдПрдВрдЧреЗред рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рд╣реА рдЙрдард╛рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИ: https://github.com/pydata/pandas/issues/5902ред

рдпрд╣ рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЕрдВрддрдГрдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рднрдпрд╛рдирдХ рд╣реИред рдпрджрд┐ рдЖрдк рдбреЗрдЯрд╛рдлреНрд░реЗрдо рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕реА рдХреЛ рдХреЙрд▓, рддреЛ рдЗрд╕реЗ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдкрд╛рдЗрдерди рдореЗрдВ рдбреЗрдЯрд╛рдлреНрд░реЗрдо рдмрдирд╛рдирд╛ рд╣реИ, рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдбреЗрдЯрд╛ рдкрд░ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИ, рдЬреЛ рдПрдирдкреА.рдПрд░реЗ рд╣реИрдВ, рдФрд░ рдЗрдиреНрд╣реЗрдВ рдкрд╛рд╕ рдХрд░реЗрдВ рдПрдирдкреА .arrays рд╕рд╛рде рдореЗрдВ рддрд╛рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЖрдмрд╛рдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЖрдк рдХреЗрд╡рд▓ рдЗрд╕ рдмрд╛рдд рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХрд┐рд╕ рдбреЗрдЯрд╛ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рд▓рдХреНрд╖реНрдп рдХреЗрд╡рд▓ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдирд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рдЬрд╛рди рд╕рдХреЗрдВ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдХреЙрдкреА рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдпрд╣ рднреА рдЖрдо рддреМрд░ рдкрд░ рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рддрд╛рддреНрдкрд░реНрдп рд╣реИ рдХрд┐ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ (рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдерд┐рддрд┐ рдкрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ, рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдЖрджрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░) рдпрд╣ рдЧрд╛рд░рдВрдЯреА рджреЗрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджреЛ рдмрд╛рд░ рд╕реНрдореГрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред

рдЗрд╕рдХрд╛ рдПрдХ рдмреЗрд╣рдж рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдорд╛рддреНрд░рд╛рддреНрдордХ рдкрд╛рдпрдерди рд╕реНрдЯреИрдХ рдореЗрдВ рдЖрдзрд╛рд░рд┐рдд рд╣реИ: рдПрдХ рд╡рд┐рдзрд┐ рд╣реИ рдЬреЛ numpy рдХреЗ рдЦрд╛рд▓реА рдХреЗ рд╕рдорд╛рди рд╣реИред рдпрд╣ рд╕реНрдерд╛рди рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рднреА рд▓рд┐рдЦрдиреЗ рдпрд╛ рдХреЙрдкреА рдХрд░рдиреЗ рдореЗрдВ рд╕рдордп рдмрд░реНрдмрд╛рдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдЦрд╛рд▓реА рдкрд╣рд▓реЗ рд╣реА рд▓рд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╡рд┐рдзрд┐ рдХреЛ_рдЦрд╛рд▓реА рд╕реЗ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рджреВрдВрдЧрд╛ред рдпрд╣ рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдЧрд╛ (рдЕрдирд┐рд╡рд╛рд░реНрдп, рд╕рдмрд╕реЗ рдЖрдо рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ np.arange(N)), рдХреЙрд▓рдо (рдЕрдирд┐рд╡рд╛рд░реНрдп, рдЖрдорддреМрд░ рдкрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреА рдПрдХ рд╕реВрдЪреА), рдкреНрд░рдХрд╛рд░ (рдХреЙрд▓рдо рдХреЗ рд▓рд┐рдП рд╕реНрд╡реАрдХрд╛рд░реНрдп рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рд╕реВрдЪреА, рдХреЙрд▓рдо рдХреЗ рд╕рдорд╛рди рд▓рдВрдмрд╛рдИ) рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╕рднреА рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░реЛрдВ (рдЗрдВрдЯреНрд╕, рдлреНрд▓реЛрдЯреНрд╕) рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╡рд┐рд╢реЗрд╖ рдкрд╛рдВрдбрд╕ рдХреЙрд▓рдо рдЬреИрд╕реЗ рдбреЗрдЯрд╛рдЯрд╛рдЗрдо рдЗрдВрдбреЗрдХреНрд╕ рдФрд░ рд╢реНрд░реЗрдгреАрдмрджреНрдз рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдмреЛрдирд╕ рдХреЗ рд░реВрдк рдореЗрдВ, рдЪреВрдВрдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рд╣реИ, рдпрд╣ рдореМрдЬреВрджрд╛ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╣рд╕реНрддрдХреНрд╖реЗрдк рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

API Design Constructors Dtypes

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

SO рдкрд░ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдкреВрдЫрдиреЗ рд╡рд╛рд▓реЗ рдХрдИ рд╕реВрддреНрд░ рд╣реИрдВред

рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпреЗ рд╕рднреА рд╕рдорд╕реНрдпрд╛рдПрдВ рдмреНрд▓реЙрдХрдореИрдиреЗрдЬрд░ рд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреЙрд▓рдо рдХреЛ рдПрдХ рдореЗрдореЛрд░реА рдЦрдВрдб ('рдмреНрд▓реЙрдХ') рдореЗрдВ рд╕рдореЗрдХрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИрдВред
рдХреЙрдкреА = рдЧрд▓рдд рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реЛрдиреЗ рдкрд░ рдбреЗрдЯрд╛ рдХреЛ рдмреНрд▓реЙрдХ рдореЗрдВ рд╕рдореЗрдХрд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЧреИрд░-рд╕рдореЗрдХрд┐рдд рдмрдВрджрд░-рдкреИрдЪ рдмреНрд▓реЙрдХрдореИрдиреЗрдЬрд░ рд╣реИ:
https://stackoverflow.com/questions/45943160/can-memmap-pandas-series-what-about-a-dataframe
рдХрд┐ рдореИрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рддрд╛ рдерд╛ред

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

рдЖрдк рдмрд╕ рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рдФрд░ рдХреЙрд▓рдо рдХреЗ рд╕рд╛рде рдПрдХ рдЦрд╛рд▓реА рдлреНрд░реЗрдо рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ
рдлрд┐рд░ ndarrays рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВ - рдпреЗ рдЖрдк рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рднреА рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВ

рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдЗрдиреНрд╣реЗрдВ np.empty рд╕реЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ

df = pd.DataFrame(index=range(2), columns=["dude", "wheres"])

df
Out[12]:
  dude wheres
0  NaN    NaN
1  NaN    NaN

x = np.empty(2, np.int32)

x
Out[14]: array([6, 0], dtype=int32)

df.dude = x

df
Out[16]:
   dude wheres
0     6    NaN
1     0    NaN

x[0] = 0

x
Out[18]: array([0, 0], dtype=int32)

df
Out[19]:
   dude wheres
0     6    NaN
1     0    NaN

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореЗрд░реА рдирдХрд▓ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЬрдм рддрдХ рдореИрдВрдиреЗ рдЬреЛ рдХреЛрдб рд▓рд┐рдЦрд╛ рд╣реИ рд╡рд╣ рд╡рд╣ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЖрдкрдХрд╛ рдорддрд▓рдм рд╣реИ, рдпрд╛ рдЬреЛ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рд╣реБрдИ рд╣реИ рд╡рд╣ рд╡рд╣ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдкрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдореИрдВ рджреВрд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛ред

рдЖрдкрдиреЗ dtype рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ
рдЗрд╕рд▓рд┐рдП рдпрд╣ рдПрдХ рдлреНрд▓реЛрдЯ рдХреЗ рд╕рд╛рде рдХреЛрд╢рд┐рд╢ рдХреА рдирдХрд▓ рдХреА

y = np.empty(2, np.float64)

df
Out[21]:
   dude wheres
0     6    NaN
1     0    NaN

df.wheres = y

y
Out[23]: array([  2.96439388e-323,   2.96439388e-323])

y[0] = 0

df
Out[25]:
   dude         wheres
0     6  2.964394e-323
1     0  2.964394e-323

df = pd.DataFrame(index=range(2), columns=["dude", "wheres"])

df.dtypes
Out[27]:
dude      object
wheres    object
dtype: object

dtype рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдореИрдВ рдлреНрд▓реЛрдЯ рдпрд╛ рдЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдпрд╛ рдирд╣реАрдВред

In [25]: arr = np.ones((2,3))

In [26]: df = DataFrame(arr,columns=['a','b','c'])

In [27]: arr[0,1] = 5

In [28]: df
Out[28]: 
   a  b  c
0  1  5  1
1  1  1  1

рдорд┐рд╢реНрд░рд┐рдд рдкреНрд░рдХрд╛рд░ рдкрд░ w/oa рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдлреА рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕реНрдореГрддрд┐ рд╡рд┐рд╡рд╛рдж рдореБрджреНрджреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдСрдмреНрдЬреЗрдХреНрдЯ)ред рдФрд░ рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд╕рдореЗрдХрд┐рдд рдХрд░рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдкреНрд░рдХрд╛рд░ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдХреЙрдкреА рд╕реЗ рдмрдЪрдирд╛ рдХрд╛рдлреА рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрддрд╛ рд╣реИред

рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╡рд╣реА рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЖрдкрдХреЛ рдЪрд╛рд╣рд┐рдП, рдбреЗрдЯрд╛ рдкрд░ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░реЗрдВред рд╡рд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХреНрдпреЛрдВ рд╣реИ?

рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЬреЛ рдЪрд╛рд╣рд┐рдП рдЙрд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд╕рд╣реА рдкреНрд░рдХрд╛рд░ рдХреА рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдХреЗ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдореЗрд░рд╛ рдХреЛрдИ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдЦрд╛рд▓реА рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдмрдирд╛рдиреЗ рдХрд╛ рдЖрдкрдХрд╛ рд╕реБрдЭрд╛рд╡ рдХреЛрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реИрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдХреЙрдкреА рдХрд░рдиреЗ рдХреА рд▓рд╛рдЧрдд рдХреЛ рдХрдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЕрдЧрд░ рдореИрдВ 1 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕реЗ рдХрд╣реАрдВ рдФрд░ рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдореЗрдореЛрд░реА рдореЗрдВ рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдХрдЪрд░реЗ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдХреА рд▓рд╛рдЧрдд рдХрд╛ рднреБрдЧрддрд╛рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рджреЗрдЦрддреЗ рд╣реИрдВ?

рд╣рд╛рдВ, рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд╕рдореЗрдХрд┐рдд рдХрд░рддреА рд╣реИред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕реНрдореГрддрд┐ рд╡рд┐рд╡рд╛рдж рдХреЗ рдореБрджреНрджреЛрдВ рд╕реЗ рдЖрдкрдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ рд╡рд╕реНрддреБрдПрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣рд╛рдВ рд░реБрдЪрд┐ рдирд╣реАрдВ рд░рдЦрддреА рд╣реИрдВред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЬрдмрдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдирд╛ рдПрдХ рдХрдард┐рди рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рд╕реБрдЭрд╛рдП рдЧрдП рддрд░реАрдХреЗ рд╕реЗ рдЙрдирд╕реЗ рдмрдЪрдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд╢реБрд░реБрдЖрдд рд╕реЗ рд╣реА рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдпрд╣ рдбреЗрдЯрд╛ рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рдорд╛рди рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдбреЗрдЯрд╛ рд╕реЗ dtypes рдФрд░ # рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдФрд░ рдбреЗрдЯрд╛ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрдк dtypes рдФрд░ # рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╕реАрдзреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдмрд╛рдХреА рд╕рдм рдареАрдХ рдЙрд╕реА рддрд░рд╣ рдХрд░рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдЖрдкрдиреЗ рдХреЙрдкреА рдХреЛ рдШрдЯрд╛рдХрд░ рдХрд┐рдпрд╛ рд╣реЛрдЧрд╛ред

рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рд╕рдорд░реНрдерд┐рдд рдХреЙрд▓рдо рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП "рдЦрд╛рд▓реА" рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рдЗрд╕реЗ рд╢реНрд░реЗрдгреАрдмрджреНрдз рдХреЗ рд▓рд┐рдП рдЧреИрд░-рд╢реВрдиреНрдп рдХрд╛рд░реНрдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдбреЗрдЯрд╛рдЯрд╛рдЗрдо рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдирд┐рд╢реНрдЪрд┐рддред

рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдПрдХ рдирд┐рд░реНрджреЗрд╢ рдкрд╛рд╕ рдХрд░рдирд╛ рдФрд░ рдХреЙрдкреА рдХрд░рдирд╛ = рдЧрд▓рдд рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

рддреЛ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЖрдк рдЬрд┐рди рд╕рд░рдгрд┐рдпреЛрдВ рд╕реЗ рдЧреБрдЬрд░ рд░рд╣реЗ рд╣реИрдВ рд╡реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реИрдВред рдФрд░ рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рдЗрд╕рдореЗрдВ рдХреБрдЫ рднреА рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдбреЗрдЯрд╛ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИред рддреЛ рд╡рд╛рдИрдПрдордПрдорд╡реАред рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЙрд╕ рд╢реВрдиреНрдп/рд╢реВрдиреНрдп рдХреЗ рдмрдЬрд╛рдп np.empty рдореЗрдВ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдореИрдВ рд╣реВрдВред

In [75]: arr = np.ones((2,3))

In [76]: arr2 = np.zeros((2,2),dtype='int32')

In [77]: df = DataFrame(arr,columns=list('abc'))

In [78]: df2 = DataFrame(arr2,columns=list('de'))

In [79]: result = pd.concat([df,df2],axis=1,copy=False)

In [80]: arr2[0,1] = 20

In [81]: arr[0,1] = 10

In [82]: result
Out[82]: 
   a   b  c  d   e
0  1  10  1  0  20
1  1   1  1  0   0

In [83]: result._data
Out[83]: 
BlockManager
Items: Index([u'a', u'b', u'c', u'd', u'e'], dtype='object')
Axis 1: Int64Index([0, 1], dtype='int64')
FloatBlock: slice(0, 3, 1), 3 x 2, dtype: float64
IntBlock: slice(3, 5, 1), 2 x 2, dtype: int32

In [84]: result._data.blocks[0].values.base
Out[84]: 
array([[  1.,  10.,   1.],
       [  1.,   1.,   1.]])

In [85]: result._data.blocks[1].values.base
Out[85]: 
array([[ 0, 20],
       [ 0,  0]], dtype=int32)

_рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреНрд░рдпрд╛рд╕ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ reindex рдлреЛрд░реНрд╕ рдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдХреЗ рдмрд╛рдж рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдЕрдЬреАрдм "рдлреАрдЪрд░" рд╣реИред

'рд╡рд┐рдзрд┐' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдЗрд╕ рдкреНрд░рдпрд╛рд╕ рдХреЛ рдереЛрдбрд╝рд╛ рдХрдо рд╕рдВрддреЛрд╖рдЬрдирдХ рдмрдирд╛рддреА рд╣реИ:

arr = np.empty(1, dtype=[('x', np.float), ('y', np.int)])
df = pd.DataFrame.from_records(arr).reindex(np.arange(100))

рдпрджрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд┐рдд рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреЛрдИ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗ numpy рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрд╡рдзрд╛рд░рдгрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред

рдЬреЗрд░реЗрдмреИрдХ, рдЖрдкрдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рд╢реНрд░реЗрдгреАрдмрджреНрдзреЛрдВ рдХреЗ рд▓рд┐рдП рднреА (рдЬрд┐рд╕рдиреЗ рдореБрдЭреЗ рдЪреМрдВрдХрд╛ рджрд┐рдпрд╛)ред рдЕрдЧрд░ рдореБрдЭреЗ рд╕рдорд╕реНрдпрд╛рдПрдВ рдЖрддреА рд╣реИрдВ рддреЛ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛ рджреВрдВрдЧрд╛ред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ: рдпрджрд┐ рдЖрдк рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИред рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рд╕реЗ рдЖрдкрдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ? рдЬрдм рддрдХ рдЧрд╛рдп рд╢рдмреНрджрд╛рд░реНрде рдирд╣реАрдВ рд╣реИрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЬреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рд╡рд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рдордп рдЧрд╣рд░реА рдмрдирд╛рдо рдЙрдерд▓реА рдкреНрд░рддрд┐рдпреЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИред

рдореБрдЭреЗ рдЕрднреА рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ from_empty рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдЗрддрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛, рдЬрдмрдХрд┐ рдпрд╣ рддрдХрдиреАрдХ рдХрд╛рдо рдХрд░рддреА рд╣реИ, рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХреЛрдб рдУрд╡рд░рд╣реЗрдб рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рдпрд╣ рдПрдХ рдПрдХрд▓ рд╕рдордЧреНрд░ рдкреНрд░рдХрд╛рд░ рдФрд░ рдХрдИ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдмреИрд╢рдЯреЗрдЬ, рдпреЗ рд╕рдорд╛рдзрд╛рди рдЕрднреА рднреА рд╕рдВрдкреВрд░реНрдг рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдЪреВрдВрдХрд┐ рд▓реЗрдЦрди рдЖрдорддреМрд░ рдкрд░ рдкрдврд╝рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдзреАрдорд╛ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рд╢реНрди рдореЗрдВ рдЖрдзреЗ рд╕реЗ рднреА рдХрдо рдУрд╡рд░рд╣реЗрдб рдмрдЪрд╛рддрд╛ рд╣реИред

рдЬрд╛рд╣рд┐рд░ рд╣реИ рдЕрдЧрд░ рдореИрдВ рдирд╣реАрдВ рдЧрдпрд╛ рдФрд░ numpy рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдкрд╛рдВрдбрд╛ рдореЗрдВ рдХрдИ рдЕрджреНрднреБрдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдФрд░ рдХреНрд╖рдорддрд╛рдПрдВ рд╣реИрдВ рдЬреЛ рдореБрдЭреЗ рдкрд╕рдВрдж рд╣реИрдВ, рдФрд░ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдЫреЛрдбрд╝рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдХреНрдпрд╛ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреВрдЫ рд░рд╣реЗ рдереЗ, рдпрд╛ рд╕рд┐рд░реНрдл рдпрд╣ рдХрд╣ рд░рд╣реЗ рдереЗ рдХрд┐ рдЕрдЧрд░ рдореИрдВ рдЗрд╕ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рд╣рд┐рдЯ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рддреЛ рдореБрдЭреЗ numpy рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдЗрд╕реЗ рд╕реНрдХреНрд░реИрдЪ рдХрд░реЗрдВ, рдХреГрдкрдпрд╛, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рддреНрд░реБрдЯрд┐, рдФрд░ рдореЗрд░реА рдХреНрд╖рдорд╛рдпрд╛рдЪрдирд╛ред рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХреЗ рд╕рд╛рде reindex_axis = рдЧрд▓рдд рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ред

рдмреИрд╢рдЯреЗрдЬ, рдпреЗ рд╕рдорд╛рдзрд╛рди рдЕрднреА рднреА рд╕рдВрдкреВрд░реНрдг рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдЪреВрдВрдХрд┐ рд▓реЗрдЦрди рдЖрдорддреМрд░ рдкрд░ рдкрдврд╝рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдзреАрдорд╛ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рд╢реНрди рдореЗрдВ рдЖрдзреЗ рд╕реЗ рднреА рдХрдо рдУрд╡рд░рд╣реЗрдб рдмрдЪрд╛рддрд╛ рд╣реИред

рдпрд╣ рд╕рдЪ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рднреА рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдХреА рдЬрд░реВрд░рдд рд╣реИ рдПрдХ рдирдпрд╛ method рдХреЗ рд▓рд┐рдП reindex рдХрд┐ рдХреБрдЫ рднреА рд╕реЗ рднрд░рдирд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдФрд░ рдлрд┐рд░ рдЖрдк / рд▓реЗрдЦрди рдХреЗ рдмрд┐рдирд╛ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдХреЙрд▓рдо рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдПрдХ рдЯрд╛рдЗрдк рд╕рд░рдгреА рдЖрд╡рдВрдЯрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХреЛ рдХреЙрдкреАред

рдЬрд╛рд╣рд┐рд░ рд╣реИ рдЕрдЧрд░ рдореИрдВ рдирд╣реАрдВ рдЧрдпрд╛ рдФрд░ numpy рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдкрд╛рдВрдбрд╛ рдореЗрдВ рдХрдИ рдЕрджреНрднреБрдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдФрд░ рдХреНрд╖рдорддрд╛рдПрдВ рд╣реИрдВ рдЬреЛ рдореБрдЭреЗ рдкрд╕рдВрдж рд╣реИрдВ, рдФрд░ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдЫреЛрдбрд╝рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдХреНрдпрд╛ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреВрдЫ рд░рд╣реЗ рдереЗ, рдпрд╛ рд╕рд┐рд░реНрдл рдпрд╣ рдХрд╣ рд░рд╣реЗ рдереЗ рдХрд┐ рдЕрдЧрд░ рдореИрдВ рдЗрд╕ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рд╣рд┐рдЯ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рддреЛ рдореБрдЭреЗ numpy рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдпрд╣ рдереЛрдбрд╝рд╛ рдЕрд▓рдВрдХрд╛рд░рд┐рдХ рдерд╛ - рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдПрдХ рдЧрдВрднреАрд░ рд╕реБрдЭрд╛рд╡ рднреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ numpy рдбреЗрдЯрд╛-рдП-рдП-рдмреНрд▓реЙрдм-рдСрдл-рдореЗрдореЛрд░реА рдПрдХреНрд╕реЗрд╕ рдХреЗ рдХрд░реАрдм рдкрд╣реБрдВрдЪрдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдпрджрд┐ рдЖрдк рдмрд╣реБрдд рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рдХреЛрдбред рдЬрдм рдХреЛрдб рд╕рд╛рджрдЧреА рдкреНрд░рджрд░реНрд╢рди рд╕реЗ рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛрддреА рд╣реИ, рддреЛ рдЖрдк рд╣рдореЗрд╢рд╛ рд╕реБрдиреНрди рд╕реЗ рдкрд╛рдВрдбрд╛ рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред

рдЬреЛ рдЖрдк рдХрд╣ рд░рд╣реЗ рд╣реИрдВ, рд╡реЛ рдореБрдЭреЗ рд╕рдордЭ рдЖ рд░рд╣рд╛ рд╣реИред рдореБрдЭреЗ рдЕрднреА рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рдмрдЬрд╛рдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдЪрд▓рддреЗ рд╣реИрдВ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рдФрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рд╣реИред

рдкрдВрдбреЛрдВ рдиреЗ рдЕрднреА рднреА рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдЬреЛрд░ рджрд┐рдпрд╛ рд╣реИ рдпрджрд┐ рдЗрд╕рдХрд╛ рдореБрдЦреНрдп рдЙрджреНрджреЗрд╢реНрдп рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ рдЗрд╕рдореЗрдВ numpy рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ, рдФрд░ рдЗрдирдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╣рдо рдЬрд┐рд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЙрд╕рдХрд╛ рдЙрди рдЙрдЪреНрдЪ рд╕реНрддрд░реАрдп рд╕реБрд╡рд┐рдзрд╛рдУрдВ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдРрд╕рд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдХреЛ рдЙрди рдЬрдЧрд╣реЛрдВ рдкрд░ рднрд╛рд░реА рдкреНрд░рддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЖрдкрдХрд╛ рд╕реБрдЭрд╛рд╡ рдЙрдЪрд┐рдд рд╣реЛрдЧрд╛ рдпрджрд┐ рдХреЛрдИ рдХреЙрд▓рдо, рдЗрдВрдбреЗрдХреНрд╕ рдЖрджрд┐ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рд▓рд╛рдЧрдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрджрдмреВ рдХрд░ рд░рд╣рд╛ рдерд╛, рдЬреЛ рдЗрд╕ рдЪрд░реНрдЪрд╛ рд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рдЕрд▓рдЧ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдкрд╛рдЗрдерди рдореЗрдВ рд╕реНрдореГрддрд┐ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреЗ рдХреЛрдб рдмрдирд╛рдо рд▓реЗрдЦрди рдХреА рд▓рд╛рдЧрдд рдХреЛ рдЕрдзрд┐рдХ рдорд╣рддреНрд╡ рджреЗ рд░рд╣реЗ рд╣реИрдВ - рдорд╣рдВрдЧрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╕реНрдореГрддрд┐ рдЖрд╡рдВрдЯрди рд╣реИред рд╡рд╕реНрддреБ рдирд┐рд░реНрдорд╛рдг рднреА рдорд╣рдВрдЧрд╛ рд╣реИред

рджреЛрдиреЛрдВ 1GB рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдПрдХ рдЦрд╛рд▓реА рдФрд░ рдПрдХ рд╢реВрдиреНрдпред

%timeit np.empty(1, dtype=[('x', float), ('y', int), ('z', float)])
100000 loops, best of 3: 2.44 ┬╡s per loop

%timeit np.zeros(1, dtype=[('x', float), ('y', int), ('z', float)])
100000 loops, best of 3: 2.47 ┬╡s per loop

%timeit np.zeros(50000000, dtype=[('x', float), ('y', int), ('z', float)])
100000 loops, best of 3: 11.7 ┬╡s per loop

%timeit np.empty(50000000, dtype=[('x', float), ('y', int), ('z', float)])
100000 loops, best of 3: 11.4 ┬╡s per loop

150,000,000 рдорд╛рдиреЛрдВ рдХреЛ рд╢реВрдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 3┬╡sред

рдЕрдм рдЗрдирдХреА рддреБрд▓рдирд╛ рдПрдХ рддреБрдЪреНрдЫ DataFrame рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВред

%timeit pd.DataFrame([[0]])
1000 loops, best of 3: 426 ┬╡s per loop

рддреБрдЪреНрдЫ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ 200 рдЧреБрдирд╛ рдзреАрдорд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рдмрдбрд╝реЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╣реАрдВ рдЕрдзрд┐рдХ рдЦрд░рд╛рдм рд╣реИред

%timeit pd.DataFrame(np.empty((50000000, 3)),copy=False)
1 loops, best of 3: 275 ms per loop

рдЕрдм рдЗрд╕рдореЗрдВ 275 m s рд▓рдЧрддреЗ рд╣реИрдВ -- рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рдХреБрдЫ рднреА рдХреЙрдкреА рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рд▓рд╛рдЧрдд рд╕реВрдЪрдХрд╛рдВрдХ рдЖрджрд┐ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╣реИ, рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрд╣реБрдд рдзреАрдореА рд╣реИ рдЬрдм рд╕рд░рдгреА рдЧреИрд░-рддреБрдЪреНрдЫ рд░реВрдк рд╕реЗ рдмрдбрд╝реА рд╣реЛрддреА рд╣реИред

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рд╕рдордпрдкреВрд░реНрд╡ рдЕрдиреБрдХреВрд▓рди рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкрд╛рдВрдбрд╛ рдореЗрдВ рдЕрдиреНрдп рдУрд╡рд░рд╣реЗрдб рдЗрддрдиреЗ рдмрдбрд╝реЗ рд╣реИрдВ рдХрд┐ рдореЙрд▓реЛрдХ + рдлрд┐рд▓рд┐рдВрдЧ рдШрдЯрдХ 0 рд▓рд╛рдЧрдд рдХреЗ рдХрд░реАрдм рд╣реИред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдПрдХ рддрдВрдЧ рд▓реВрдк рдореЗрдВ рдХреБрдЫ рднреА рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рдкреНрд░рджрд░реНрд╢рди рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдПрдХ numpy array рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдареАрдХ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, @quicknir рдЕрдЧрд░ рдЖрдк рдХреБрдЫ рд╕реБрдзрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред 2 рдореБрджреНрджреЗред

  • #4464 - рдпрд╣ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ DataFrame рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдПрдХ рдХрдВрдкрд╛рдЙрдВрдб dtype рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд░рд╣рд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЪрд╛рд░реЛрдВ рдУрд░ рдореБрдбрд╝рдХрд░ from_records() рдХреЙрд▓ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕рд░рдгреА рдПрдХ rec/рд╕рдВрд░рдЪрд┐рдд рд╕рд░рдгреА рд╣реЛрдиреЗ рдкрд░ рднреА рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ from_records rec/рд╕рдВрд░рдЪрд┐рдд рд╕рд░рдгреА рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдкрде рдмрдирд╛ рджреЗрдЧрд╛
  • copy= рдХреАрд╡рд░реНрдб рд╕реЗ from_records
  • from_records рдлрд┐рд░ concat soln рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдореИрдВ рдКрдкрд░ рджрд┐рдЦрд╛рддрд╛ рд╣реВрдВ, рд░рд┐рдХ-рд╕рд░рдгреА рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЙрдиреНрд╣реЗрдВ (рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд░реВрдк рдореЗрдВ) рд╕реНрд╡рдЪреНрдЫ рдХрд░рдирд╛ рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рд╡рд╛рдкрд╕ рдПрдХ рд╕рд╛рде рд░рдЦрдирд╛ (dtype рдмреНрд▓реЙрдХ рдореЗрдВ; рдпрд╣ рд╣рд┐рд╕реНрд╕рд╛ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред

рдпрд╣ рдереЛрдбрд╝рд╛ рдЧреИрд░-рддреБрдЪреНрдЫ рд╣реИ рд▓реЗрдХрд┐рди рдлрд┐рд░ рдХрд┐рд╕реА рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рдмрдирд╛рдП рдЧрдП ndarray (рдЦрд╛рд▓реА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ) рдореЗрдВ рдорд┐рд╢реНрд░рд┐рдд рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рд╕рдВрднрд╡рддрдГ (рдкрд╣рд▓реЗ рдкрд╛рд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ) рдХреЗрд╡рд▓ (int/float/string) рдХреЛ рд╕рдВрднрд╛рд▓реЗрдЧрд╛ред рдЪреВрдВрдХрд┐ рдбреЗрдЯрд╛рдЯрд╛рдЗрдо/рдЯрд╛рдЗрдордбреЗрд▓реНрдЯрд╛ рдХреЛ рд╡рд┐рд╢реЗрд╖ рд╕реНрд╡рдЪреНрдЫрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдпрд╣ рдереЛрдбрд╝рд╛ рдФрд░ рдЬрдЯрд┐рд▓ рдмрдирд╛ рджреЗрдЧрд╛ред

рдЗрд╕рд▓рд┐рдП @bashtage рдПрдХ рдкреВрд░реНрдг рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рд╕рд╣реА рд╣реИред рдлреНрд░реЗрдо рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдлрд┐рд░ ndarrays рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ (рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдмреНрд▓реЙрдХ рдХреЛ рдкрдХрдбрд╝рдХрд░ рдРрд╕рд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЕрдиреНрдпрдерд╛ рдЖрдкрдХреЛ рдкреНрд░рддрд┐рдпрд╛рдВ рдорд┐рд▓ рдЬрд╛рдПрдВрдЧреА)ред

рдКрдкрд░ рдЬреЛ рдореЗрд░рд╛ рдорддрд▓рдм рдерд╛ рд╡рд╣ рдпрд╣ рд╣реИред рдкрд╛рдВрдбрд╛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдХреЗ рдкреНрд░рдХрд╛рд░ (рдЬреИрд╕реЗ int64, int32 рдЕрд▓рдЧ рд╣реИрдВ) рдХреЛ 'рдмреНрд▓реЙрдХ' (рдлреНрд░реЗрдо рдореЗрдВ 2-рдбреА) рдореЗрдВ рд╕рдореВрд╣рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпреЗ рдПрдХ рд╕рдиреНрдирд┐рд╣рд┐рдд рдореЗрдореЛрд░реА ndarray рд╣реИрдВ (рдЬреЛ рдХрд┐ рдирд╡ рдЖрд╡рдВрдЯрд┐рдд рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдЗрд╕реЗ рдХреЗрд╡рд▓ рдкрд╛рд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрдХ рд╣реА dtype рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)ред рдпрджрд┐ рдЖрдк рдПрдХ рд╕реЗрдЯрд┐рдЯрдо рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП df['new_columns'] = 5 рдФрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ int64 рдмреНрд▓реЙрдХ рд╣реИ, рддреЛ рдпрд╣ рдирдпрд╛ рдХреЙрд▓рдо рдЕрдВрддрддрдГ рдЗрд╕рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝ рдЬрд╛рдПрдЧрд╛ (рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЙрд╕ dtype рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рд╣реЛрдЧрд╛)ред рдпрджрд┐ рдЖрдк рдЗрд╕ рдкрд░ рдПрдХ рд╕рдВрджрд░реНрдн рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╕рдВрджрд░реНрдн рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рдереЗ рддреЛ рдпрд╣ рдЕрдм рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП рдпрд╣ рдРрд╕реА рд░рдгрдиреАрддрд┐ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдЗрдВрдЯрд░реНрдирд▓ рдкрд░ w/o рдкреАрдпрд░рд┐рдВрдЧ рдирд┐рдпреЛрдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

@bashtage рдпреЗ рдмрдбрд╝реА рд▓рд╛рдЧрдд рд╕реВрдЪрдХрд╛рдВрдХ рд╣реИ рдЬреИрд╕рд╛ рдЖрдкрдиреЗ рдиреЛрдЯ рдХрд┐рдпрд╛ рд╣реИред рдПрдХ RangeIndex (#939 рджреЗрдЦреЗрдВ) рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рд▓ рдХрд░ рджреЗрдЧрд╛ред (рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓рдЧрднрдЧ рдПрдХ рд╕рд╛рдЗрдб рдмреНрд░рд╛рдВрдЪ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдмрд╕ рдХреБрдЫ рдбрд╕реНрдЯрд┐рдВрдЧ рдХреА рдЬрд░реВрд░рдд рд╣реЛрддреА рд╣реИ)ред

рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдПрдХ рдЕрдиреБрдХреВрд▓рд┐рдд RangeIndex рднреА рдпрд╣ рдПрдХ NumPy рд╕рд░рдгреА рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдзреАрдореА рдкрд░рд┐рдорд╛рдг рдХреЗ 2 рдСрд░реНрдбрд░ рд╣реЛрдВрдЧреЗ, рдЬреЛ рдХрд┐ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╡рдЬрди рдкреНрд░рдХреГрддрд┐ рдФрд░ DataFrame рдЕрддрд┐рд░рд┐рдХреНрдд рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд╛рдлреА рдЙрдЪрд┐рдд рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рдлрд╝рдВрдХреНрд╢рди рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рди рдХрд┐ рдПрдХ рдкреНрд░рджрд░реНрд╢рди рд╕рдорд╕реНрдпрд╛ред рдпрд╣ рдорд┐рд╢реНрд░рд┐рдд рдкреНрд░рдХрд╛рд░ DataFrame рдпрд╛ Panel рдЬреИрд╕реЗ рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

dtype=np.dtype([('GDP', np.float64), ('Population', np.int64)])
pd.Panel(items=['AU','AT'],
         major_axis=['1972','1973'],
         minor_axis=['GDP','Population'], 
         dtype=[np.float, np.int64])

рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдПрдкреАрдЖрдИ / рд╕реБрд╡рд┐рдзрд╛ рдореБрджреНрджрд╛ рд╣реИ

рд╕рд╣рдордд рд╣реИрдВ рдХрд┐ рдкреВрд░реНрдг рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЖрдХрд╕реНрдорд┐рдХ рдореБрджреНрджрд╛ рд╣реИ (рдФрд░ рдЪрд╛рд▓рдХ рдирд╣реАрдВ)

@bashtage

%timeit pd.DataFrame(np.empty((100, 1000000)))
100 рд▓реВрдк, рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда 3:15.6 ms рдкреНрд░рддрд┐ рд▓реВрдк

%timeit pd.DataFrame(np.empty((100, 1000000)), рдХреЙрдкреА=рд╕рдЪ)
1 рд▓реВрдк, рд╕рд░реНрд╡реЛрддреНрддрдо 3:302 ms рдкреНрд░рддрд┐ рд▓реВрдк

рдЗрд╕рд▓рд┐рдП рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдореЗрдВ рдХреЙрдкреА рдХрд░рдиреЗ рдореЗрдВ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдмрдирд╛рдиреЗ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдЕрдиреНрдп рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ 20 рдЧреБрдирд╛ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ (рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдЖрд╡рдВрдЯрди) 95% рд╕рдордп рд╣реИред рдЖрдкрдиреЗ рдЬрд┐рди рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХреЛ рд╕рд╣реА рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдЪрд╛рд╣реЗ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рд╕реНрд╡рдпрдВ рд╣реЛ рдпрд╛ рдЖрд╡рдВрдЯрди рдореЗрдВ рд╕рдордп рд▓рдЧ рд░рд╣рд╛ рд╣реЛ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛, рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдореИрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдпреЛрдВ рд╕реЗ рдмрдЪ рд╕рдХрддрд╛ рд╣реВрдБ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдореИрдВ рдПрдХ рдПрдХрд▓ dtype рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБ рддреЛ рдореИрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдордп рдмрдЪрд╛ рд╕рдХрддрд╛ рд╣реВрдБред

рдкрд░рд┐рдорд╛рдг рддрд░реНрдХ рдХреЗ рдЖрдкрдХреЗ рджреЛ рдХреНрд░рдо рднреА рдзреЛрдЦрд╛ рджреЗ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдПрдХрдорд╛рддреНрд░ рдСрдкрд░реЗрд╢рди рдирд╣реАрдВ рд╣реИ рдЬреЛ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдРрд╕реЗ рдЕрдиреНрдп рдСрдкрд░реЗрд╢рди рднреА рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдбрд┐рд╕реНрдХ рдкрдврд╝рддрд╛ рд╣реИред рдЕрднреА, рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдЬреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рд╡рд╣ рдореЗрд░реЗ рд╕рд╛рдзрд╛рд░рдг рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рд▓рдЧрднрдЧ рдЖрдзрд╛ рд╕рдордп рд▓реЗ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдбрд┐рд╕реНрдХ рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдореЗрдВ рдкрдврд╝рддрд╛ рд╣реИред рдпрджрд┐ рдЗрд╕рдореЗрдВ 1/20 рд╡рд╛рдВ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рддреЛ рдбрд┐рд╕реНрдХ рд░реАрдб рдкреНрд░рдореБрдЦ рд╣реЛрдЧрд╛ (рдЬреИрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП) рдФрд░ рдЖрдЧреЗ рдХреЗ рд╕реБрдзрд╛рд░реЛрдВ рдХрд╛ рд▓рдЧрднрдЧ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЖрдк рджреЛрдиреЛрдВ рдкрд░ рдлрд┐рд░ рд╕реЗ рдЬреЛрд░ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ: рдпрд╣ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рджрд░реНрд╢рди рдореБрджреНрджрд╛ рд╣реИред

jreback, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рд╕рдВрдШрдЯрди рд░рдгрдиреАрддрд┐ рд╢реНрд░реЗрдгреАрдмрджреНрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рдпрд╣ рдордд рд╕реЛрдЪрд┐рдП рдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдКрдкрд░ рд╕реБрдЭрд╛рдП рдЧрдП рд╕реБрдзрд╛рд░ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдмреЗрд╣рддрд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмрд┐рдВрджреБ рд░реАрдЗрдВрдбреЗрдХреНрд╕ рд╣реЛрдЧрд╛ред рдЕрднреА рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд░реАрдЗрдВрдбреЗрдХреНрд╕ рдмрд╣реБрдд рд╕рд╛рд░реА рдЕрддрд┐рд░рд┐рдХреНрдд рдЪреАрдЬреЗрдВ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╢реВрдиреНрдп рдкрдВрдХреНрддрд┐рдпреЛрдВ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдореЗрдВ рдХреЛрдИ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдп рдХрд┐рдП рдмрд┐рдирд╛, рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рд╣реА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИред рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ, рдпрд╣ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рдорд╣рд╕реВрд╕ рдХрд░рд╛рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдкрд╛рдВрдбрд╛ рдХреЛ рд╕реНрдХреАрдорд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдФрд░ рджрд┐рди рдХреЗ рд▓рд┐рдП рдПрдХ рдЪрд░реНрдЪрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЕрд╕рд╣рдордд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣рдордд рд╣реЛрдирд╛ рд╣реЛрдЧрд╛ред IMO рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдореЗрдВ рдЪрд░рдо рдкреНрд░рджрд░реНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рд╕реБрдкреАрд░рд┐рдпрд░ рд╕рд░рдгреА рдФрд░ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмреАрдЪ рдкрд░рд┐рдорд╛рдг рдЕрдВрддрд░ рдХреЗ рдХреНрд░рдо рд╕реЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

%timeit np.empty((1000000, 100))
1000 loops, best of 3: 1.61 ms per loop

%timeit pd.DataFrame(np.empty((1000000,100)))
100 loops, best of 3: 15.3 ms per loop

рдЕрднреА, рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдЬреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рд╡рд╣ рдореЗрд░реЗ рд╕рд╛рдзрд╛рд░рдг рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рд▓рдЧрднрдЧ рдЖрдзрд╛ рд╕рдордп рд▓реЗ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдбрд┐рд╕реНрдХ рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдореЗрдВ рдкрдврд╝рддрд╛ рд╣реИред рдпрджрд┐ рдЗрд╕рдореЗрдВ 1/20 рд╡рд╛рдВ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рддреЛ рдбрд┐рд╕реНрдХ рд░реАрдб рдкреНрд░рдореБрдЦ рд╣реЛрдЧрд╛ (рдЬреИрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП) рдФрд░ рдЖрдЧреЗ рдХреЗ рд╕реБрдзрд╛рд░реЛрдВ рдХрд╛ рд▓рдЧрднрдЧ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рдкрд░рд╡рд╛рд╣ рдХрд░рдиреЗ рдХрд╛ рдпрд╣ рдФрд░ рднреА рдХрдо рдХрд╛рд░рдг рд╣реИ - рднрд▓реЗ рд╣реА рдЖрдк рдЗрд╕реЗ 100% рдореБрдлрд╝реНрдд рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдХреБрд▓ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рд╕рдордп рдХреЗрд╡рд▓ 50% рдХрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдкреАрдЖрд░ рдХрд░рдиреЗ рдХреА рдЧреБрдВрдЬрд╛рдЗрд╢ рд╣реИ, рдЪрд╛рд╣реЗ рдЖрдк рдЗрд╕реЗ рдПрдХ рдкреНрд░рджрд░реНрд╢рди рдореБрджреНрджреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╛ рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдореБрджреНрджреЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЛрдЪрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдореЗрд░реЗ рдкреАрдУрд╡реА рд╕реЗ, рдореИрдВ рдЗрд╕реЗ рдмрд╛рдж рд╡рд╛рд▓реЗ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдЬрдм рдореИрдВ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореИрдВ рд╣рдореЗрд╢рд╛ рдПрдХ numpy рд╕рд░рдгреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред Numpy рдЕрдиреНрдп рдЪреАрдЬреЗрдВ рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдмреНрд▓реЙрдХ рдореИрдиреЗрдЬрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЬреЛ рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдХреБрд╢рд▓ рд╣реИ (рдЬреИрд╕реЗ рдХреЙрд▓рдо рдЬреЛрдбрд╝рдХрд░ рд╕рд░рдгреА рдмрдврд╝рд╛рдирд╛)ред рд▓реЗрдХрд┐рди рдЕрдиреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдмреБрд░рд╛ред

рджреЛ рд╡рд┐рдХрд▓реНрдк рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдкрд╣рд▓рд╛, рдПрдХ рдЦрд╛рд▓реА рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рджрд┐рдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджрд┐рдпрд╛ рд╣реИред рдпрд╣ рдХреБрдЫ рднреА рдХреЙрдкреА рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдкрдВрдбреЛрдВ рдореЗрдВ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╢рд╛рдпрдж рдирд▓-рдлрд┐рд▓ рд╣реЛрдЧрд╛ред рдирд▓ рднрд░рдирд╛ рдмрд╣реБрдд рд╕рд╕реНрддрд╛ рд╣реИ рдФрд░ рдЖрдИрдПрдордУ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреА рдЬрдбрд╝ рдореЗрдВ рдирд╣реАрдВ рд╣реИред

рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ DataFrame.from_blocks рд╣реЛрдЧрд╛ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдмреНрд▓реЙрдХ рдХреЛ рд╕реАрдзреЗ рдмреНрд▓реЙрдХ рдореИрдиреЗрдЬрд░ рдХреЗ рдкрд╛рд╕ рд▓реЗ рдЬрд╛рдПрдЧрд╛ред рдХреБрдЫ рдЗрд╕ рддрд░рд╣

DataFrame.from_blocks([np.empty((100,2)), 
                       np.empty((100,3), dtype=np.float32), 
                       np.empty((100,1), dtype=np.int8)],
                     columns=['f8_0','f8_1','f4_0','f4_1','f4_2','i1_0'],
                     index=np.arange(100))

рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдПрдХ рд╡рд┐рдзрд┐ рд▓рд╛рдЧреВ рдХрд░реЗрдЧреА рдХрд┐ рдмреНрд▓реЙрдХреЛрдВ рдореЗрдВ рд╕рдВрдЧрдд рдЖрдХрд╛рд░ рд╣реИ, рд╕рднреА рдмреНрд▓реЙрдХреЛрдВ рдореЗрдВ рдЕрджреНрд╡рд┐рддреАрдп рдкреНрд░рдХрд╛рд░ рд╣реИрдВ, рд╕рд╛рде рд╣реА рд╕рд╛рде рд╕реВрдЪрдХрд╛рдВрдХ рдФрд░ рд╕реНрддрдВрднреЛрдВ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдЬрд╛рдВрдЪ рднреА рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд┐рдзрд┐ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдирд╣реАрдВ рдХрд░реЗрдЧреА рдФрд░ рдЗрд╕реЗ BlockManger рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧреАред

@quicknir рдЖрдк рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рдЪреАрдЬреЛрдВ рдХреЛ рдЧрдардмрдВрдзрди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╢реНрд░реЗрдгреАрдмрджреНрдз numpy рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рд╡реЗ рдПрдХ рдорд┐рд╢реНрд░рд┐рдд рдкреНрд░рдХрд╛рд░ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рдПрдХ рдкрд╛рдВрдбрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реИред рдЖрдкрдХреЛ рдЕрд▓рдЧ рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдЕрд╕рд╛рдЗрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдлреА рд╕рд╕реНрддрд╛ рд╣реИ - рдпреЗ рдЕрдиреНрдп рдПрдХрд╡рдЪрди рдкреНрд░рдХрд╛рд░ рдХреА рддрд░рд╣ рдмреНрд▓реЙрдХ рдореЗрдВ рд╕рдВрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИрдВ)ред

@bashtage soln рдЙрдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИред рдпрд╣ рдХреБрдЫ рд╕рд░рд▓ рдЬрд╛рдВрдЪ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рдбреЗрдЯрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд╕ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдФрд░ рдЕрдиреНрдп рдЖрдВрддрд░рд┐рдХ рджрд┐рдирдЪрд░реНрдпрд╛ рджреНрд╡рд╛рд░рд╛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред рдЖрдо рддреМрд░ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЖрдВрддрд░рд┐рдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдЦреБрдж рдХреЛ рдЪрд┐рдВрддрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдЪреВрдВрдХрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЙрд╕ рд╕рдм рдиреЗ рдХрд╣рд╛, рдореБрдЭреЗ рдЕрднреА рднреА рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк рдареАрдХ рдЙрд╕реА рддрд░рд╣ рдПрдХ рдлреНрд░реЗрдо рдХреНрдпреЛрдВ рдирд╣реАрдВ рдмрдирд╛рддреЗ рдЬреИрд╕рд╛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдлрд┐рд░ рдмреНрд▓реЙрдХ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЛ рдкрдХрдбрд╝реЗрдВ рдФрд░ рдорд╛рди рдмрджрд▓реЗрдВред рдЗрд╕рдХреА рдПрдХ рд╣реА рдореЗрдореЛрд░реА рдЦрд░реНрдЪ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ @bashtage рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рд╢реВрдиреНрдп рдлреНрд░реЗрдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╕реНрддрд╛ рд╣реИ (рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЯрд╛рдЗрдк, рдЗрдВрдбреЗрдХреНрд╕, рдХреЙрд▓рдо рд╣реИрдВ) рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реЗрдЯ рд╣реИрдВред

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЦрд╛рд▓реА рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╕реЗ рдЖрдкрдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдкрдХрд╛ рдорддрд▓рдм рдмрд┐рдирд╛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рд╡рд╛рдВрдЫрд┐рдд рд╕реНрдХреАрдорд╛ рдФрд░ рдХреЙрд▓рд┐рдВрдЧ рд░реАрдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рд╣реИ, рддреЛ рдпрд╣ рдХреЙрдкреА = рдЯреНрд░реВ рдХреЗ рд╕рд╛рде рдмрдирд╛рдиреЗ рдореЗрдВ рдЙрддрдирд╛ рд╣реА рд╕рдордп рд╣реИред

рдЖрдкрдХрд╛ рджреВрд╕рд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдЙрдЪрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рддрднреА рдЬрдм рдЖрдк рдпрд╣ рд╕рдордЭ рд╕рдХреЗрдВ рдХрд┐ рд╢реНрд░реЗрдгреАрдмрджреНрдз рдХреИрд╕реЗ рдХрд░реЗрдВред рдЙрд╕ рд╡рд┐рд╖рдп рдкрд░, рдореИрдВ рдХреЛрдб рдкрдврд╝ рд░рд╣рд╛ рдерд╛ рдФрд░ рдореИрдВрдиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рд╢реНрд░реЗрдгреАрдмрджреНрдз рдЧреИрд░-рд╕рдореЗрдХрди рдпреЛрдЧреНрдп рд╣реИрдВред рддреЛ рдПрдХ рдЭреБрдХрд╛рд╡ рдкрд░, рдореИрдВрдиреЗ рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рд╕рд░рдгреА рдФрд░ рджреЛ рд╢реНрд░реЗрдгреАрдмрджреНрдз рд╢реНрд░реГрдВрдЦрд▓рд╛ рдмрдирд╛рдИ, рдлрд┐рд░ рдореИрдВрдиреЗ рддреАрди рдбреЗрдЯрд╛рдлреНрд░реЗрдо рдмрдирд╛рдП, рдФрд░ рддреАрдиреЛрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрд╣ рдПрдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛, рднрд▓реЗ рд╣реА рджреЛ рдбреЗрдЯрд╛рдлреНрд░реЗрдо рдореЗрдВ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдкреНрд░рдХрд╛рд░ рдерд╛ред рдореИрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдЗрд╕реЗ рдбреЗрдЯрд╛рдЯрд╛рдЗрдо рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИред

@jreback рдореИрдВ рдЕрднреА рднреА рдЙрд╕ рдлреНрд░реЗрдо рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддрд╛ рдЬреЛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреИрд╕рд╛ рдлреНрд░реЗрдо рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

@quicknir рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬреЛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЙрд╕рдХрд╛ рдХреЛрдб/рдЫрджреНрдо рдХреЛрдб рдирдореВрдирд╛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВред

def read_dataframe(filename, ....):
   f = my_library.open(filename)
   schema = f.schema()
   row_count = f.row_count()
   df = pd.DataFrame.from_empty(schema, row_count)
   dict_of_np_arrays = get_np_arrays_from_DataFrame(df)
   f.read(dict_of_np_arrays)
   return df

рдкрд┐рдЫрд▓рд╛ рдХреЛрдб рдкрд╣рд▓реЗ numpy arrays рдХрд╛ рдПрдХ рдбрд┐рдХреНрд╢рдирд░реА рдмрдирд╛ рд░рд╣рд╛ рдерд╛, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдбреЗрдЯрд╛рдлреНрд░реЗрдо рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд░рд╣рд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рдм рдХреБрдЫ рдХреЙрдкреА рдХрд░ рд░рд╣рд╛ рдерд╛ред рд▓рдЧрднрдЧ рдЖрдзрд╛ рд╕рдордп рдЙрд╕реА рдкрд░ рдЦрд░реНрдЪ рд╣реЛ рд░рд╣рд╛ рдерд╛ред рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рдЗрд╕ рдпреЛрдЬрдирд╛ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рд╕рд╛рдордЧреНрд░реА рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рддрдм рднреА рдЙрдкрд░реЛрдХреНрдд рдХреЗ рд░реВрдк рдореЗрдВ рдбреАрдПрдл рдмрдирд╛рдирд╛ рдмреЗрд╣рдж рдорд╣рдВрдЧрд╛ рд╣реИред

рдПрдирдкреА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ @quicknir рддрд╛рдирд╛рд╢рд╛рд╣реА рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реА рдирдХрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдЖрдкрдХреЛ рдмрд╕ рдпрд╣ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:

# construct your biggest block type (e.g. say you have mostly floats)
df = DataFrame(np.empty((....)),index=....,columns=....)

# then add in other things you need (say strings)
df['foo'] = np.empty(.....)

# say ints
df['foo2'] = np.empty(...)

рдпрджрд┐ рдЖрдк рдЗрд╕реЗ dtype рджреНрд╡рд╛рд░рд╛ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рд╕рд╕реНрддрд╛ рд╣реЛрдЧрд╛

рдлрд┐рд░ред

for dtype, block in df.as_blocks():
    # fill the values
    block.values[0,0] = 1

рдЪреВрдВрдХрд┐ рдпреЗ рдмреНрд▓реЙрдХ рдорд╛рди numpy arrays рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ

рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рдЬреНрдЮрд╛рдд рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╕рдмрд╕реЗ рдЖрдо рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдлреНрд▓реЛрдЯреНрд╕ рдФрд░ рдЗрдирдЯреНрд╕ рдХрд╛ рдПрдХ рд╕реНрд╡рд╕реНрде рдорд┐рд╢реНрд░рдг рд╣реЛрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рд╕рд╕реНрддрд╛ рд╣реЛрдЧрд╛, рдЕрдЧрд░ рдореЗрд░реЗ рдкрд╛рд╕ 30 рдлреНрд▓реЛрдЯ рдХреЙрд▓рдо рдФрд░ 10 рдЗрдВрдЯ рдХреЙрд▓рдо рд╣реИрдВ, рддреЛ рд╣рд╛рдВ, рдлреНрд▓реЛрдЯ рдмрд╣реБрдд рд╕рд╕реНрддреЗ рд╣реЛрдВрдЧреЗред рд▓реЗрдХрд┐рди рдЬрдм рдЖрдк рдЗрдирдЯреНрд╕ рдХрд░рддреЗ рд╣реИрдВ, рдЬрдм рддрдХ рдХрд┐ рдЙрди рд╕рднреА рдХреЛ рдПрдХ рдмрд╛рд░ рдореЗрдВ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк рдЗрдирдЯреНрд╕ рдХрд╛ рдПрдХ рдФрд░ рдХреЙрд▓рдо рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдкреВрд░реЗ int рдмреНрд▓реЙрдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред

рдЬреЛ рд╕рдорд╛рдзрд╛рди рдЖрдкрдиреЗ рдореБрдЭреЗ рдкрд╣рд▓реЗ рджрд┐рдпрд╛ рдерд╛ рд╡рд╣ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдХрд░реАрдм рд╣реИ, рдореИрдВ рдЗрд╕реЗ рдбреЗрдЯрд╛рдЯрд╛рдЗрдо рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЦрд╛рд▓реА рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╕реЗ рдЖрдкрдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдкрдХрд╛ рдорддрд▓рдм рдмрд┐рдирд╛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рд╡рд╛рдВрдЫрд┐рдд рд╕реНрдХреАрдорд╛ рдФрд░ рдХреЙрд▓рд┐рдВрдЧ рд░реАрдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рд╣реИ, рддреЛ рдпрд╣ рдХреЙрдкреА = рдЯреНрд░реВ рдХреЗ рд╕рд╛рде рдмрдирд╛рдиреЗ рдореЗрдВ рдЙрддрдирд╛ рд╣реА рд╕рдордп рд╣реИред

рдПрдХ рдЦрд╛рд▓реА рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдРрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛

dtype=np.dtype([('a', np.float64), ('b', np.int64), ('c', np.float32)])
df = pd.DataFrame(columns='abc',index=np.arange(100),dtype=dtype)

рдпрд╣ рдЙрд╕реА рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдЧрд╛ рдЬреИрд╕реЗ

dtype=np.dtype([('a', np.float64), ('b', np.int64), ('c', np.float32)])
arr = np.empty(100, dtype=dtype)
df = pd.DataFrame.from_records(arr, index=np.arange(100))

рдХреЗрд╡рд▓ рдпрд╣ рдбреЗрдЯрд╛ рдХреЙрдкреА рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рдореВрд▓ рд░реВрдк рд╕реЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдорд┐рд╢реНрд░рд┐рдд рдкреНрд░рдХрд╛рд░ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ рдЬреЛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдореВрд▓ рдкреНрд░рдХрд╛рд░ рд╣реИред

df = pd.DataFrame(columns=['a','b','c'],index=np.arange(100), dtype=np.float32)

рдХреЗрд╡рд▓ рдЕрдиреНрдп _feature_ рдЗрд╕реЗ рдЕрд╢рдХреНрдд-рднрд░рдиреЗ рд╡рд╛рд▓реЗ рдЗрдВрдЯ рд╕рд░рдгрд┐рдпреЛрдВ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдХрд╛ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рдЙрдиреНрд╣реЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ dtype рдореЗрдВ рдмрджрд▓рдиреЗ рдХрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрдирдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд▓рд╛рдкрддрд╛ рдореВрд▓реНрдп рдирд╣реАрдВ рд╣реИред

рдЖрдкрдХрд╛ рджреВрд╕рд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдЙрдЪрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рддрднреА рдЬрдм рдЖрдк рдпрд╣ рд╕рдордЭ рд╕рдХреЗрдВ рдХрд┐ рд╢реНрд░реЗрдгреАрдмрджреНрдз рдХреИрд╕реЗ рдХрд░реЗрдВред рдЙрд╕ рд╡рд┐рд╖рдп рдкрд░, рдореИрдВ рдХреЛрдб рдкрдврд╝ рд░рд╣рд╛ рдерд╛ рдФрд░ рдореИрдВрдиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рд╢реНрд░реЗрдгреАрдмрджреНрдз рдЧреИрд░-рд╕рдореЗрдХрди рдпреЛрдЧреНрдп рд╣реИрдВред рддреЛ рдПрдХ рдЭреБрдХрд╛рд╡ рдкрд░, рдореИрдВрдиреЗ рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рд╕рд░рдгреА рдФрд░ рджреЛ рд╢реНрд░реЗрдгреАрдмрджреНрдз рд╢реНрд░реГрдВрдЦрд▓рд╛ рдмрдирд╛рдИ, рдлрд┐рд░ рдореИрдВрдиреЗ рддреАрди рдбреЗрдЯрд╛рдлреНрд░реЗрдо рдмрдирд╛рдП, рдФрд░ рддреАрдиреЛрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрд╣ рдПрдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛, рднрд▓реЗ рд╣реА рджреЛ рдбреЗрдЯрд╛рдлреНрд░реЗрдо рдореЗрдВ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдкреНрд░рдХрд╛рд░ рдерд╛ред рдореИрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдЗрд╕реЗ рдбреЗрдЯрд╛рдЯрд╛рдЗрдо рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИред

from_block рд╡рд┐рдзрд┐ рдХреЛ рд╕рдореЗрдХрди рдХреЗ рдирд┐рдпрдореЛрдВ рдХреЛ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛, рддрд╛рдХрд┐ рдпрд╣ рдХрдИ рд╢реНрд░реЗрдгреАрдмрджреНрдзреЛрдВ рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗ, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдореВрд▓ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рд╣реАред

рд╣рд╛рдБ...рдпрд╣ рдХрд░рдирд╛ рдЗрддрдирд╛ рдХрдард┐рди рдирд╣реАрдВ рд╣реИ...рдХрд┐рд╕реА рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реИ рдЬреЛ рдЖрдВрддрд░рд┐рдХ рд▓реЛрдЧреЛрдВ рд╕реЗ рдПрдХ рд╕реМрдореНрдп рдкрд░рд┐рдЪрдп рдЪрд╛рд╣рддрд╛ рд╣реИ... рд╕рдВрдХреЗрдд.рд╕рдВрдХреЗрдд.рд╕рдВрдХреЗрдд.... :)

рд╣рд╛рд╣рд╛, рдореИрдВ рдХреБрдЫ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЛ рддреИрдпрд╛рд░ рд╣реВрдВ, рдореБрдЭреЗ рдЧрд▓рдд рдордд рд╕рдордЭреЛред рдореИрдВ рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЗрдВрдЯрд░реНрдирд▓ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдФрд░ рдпрд╣ рд╕рдордЭреВрдВрдЧрд╛ рдХрд┐ рдХрд┐рд╕ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдХреБрдЫ рдбреЗрдЯрд╛рдЯрд╛рдЗрдо рдЗрдВрдбреЗрдХреНрд╕ рдореБрджреНрджреЛрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдЬреЛ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЕрд▓рдЧ рдзрд╛рдЧреЗ рдореЗрдВ рд╣реИрдВред

@quicknir рдХреНрдпрд╛ рдЖрдкрдХреЛ

рдореИрдВ рд╕рд╛рдЗрдерди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рдХреЙрд▓рдо рдХреА рдХреЙрдкреА-рдХрдо рднрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдорд┐рд╢реНрд░рд┐рдд-рдбреАрдЯрд╛рдЗрдк рдбреЗрдЯрд╛рдлреНрд░реЗрдо рдХреЛ рд╕рд╕реНрддреЗ рдореЗрдВ рдЖрд╡рдВрдЯрд┐рдд (рд▓реЗрдХрд┐рди рднрд░рдирд╛ рдирд╣реАрдВ) рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдвреВрдВрдв рд░рд╣рд╛ рд╣реВрдВред

рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рд╢реБрд░реВ рдХрд░рдиреЗ рдореЗрдВ рдореЗрд░реА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рднреА рдХреЛрдб (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЕрд░реНрдз-рдХрд╛рд░реНрдпрд░рдд) рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рдЗрдЪреНрдЫреБрдХ рдереЗред

рдХреНрдпрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрдХ рд╕рдордЭрджрд╛рд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реЛрдЧрд╛? рдореИрдВрдиреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдбреЗрдЯрд╛рдлреНрд░реЗрдо рд╕реЗ рдХрд╛рдо рдХрд░рдХреЗ рдЕрд╡рд░реБрджреНрдз рддрд░реНрдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рд╣реИред

рд╢реНрд░реЗрдгреАрдмрджреНрдзреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐рди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдЪрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ?

рдмреЗрд╢рдХ, рдмрдирд╛рдП рдЧрдП рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рддрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЗрд╕реЗ рднрд░ рдирд╣реАрдВ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ...

import numpy as np
from pandas.core.index import _ensure_index
from pandas.core.internals import BlockManager
from pandas.core.generic import NDFrame
from pandas.core.frame import DataFrame
from pandas.core.common import CategoricalDtype
from pandas.core.categorical import Categorical
from pandas.core.index import Index

def allocate_like(df, size, keep_categories=False):
    # define axes (waiting for #939 (RangeIndex))
    axes = [df.columns.values.tolist(), Index(np.arange(size))]

    # allocate and create blocks
    blocks = []
    for block in df._data.blocks:
        # special treatment for non-ordinary block types
        if isinstance(block.dtype, CategoricalDtype):
            if keep_categories:
                categories = block.values.categories
            else:
                categories = Index([])
            values = Categorical(values=np.empty(shape=block.values.shape,
                                                 dtype=block.values.codes.dtype),
                                 categories=categories,
                                 fastpath=True)
        # ordinary block types
        else:
            new_shape = (block.values.shape[0], size)
            values = np.empty(shape=new_shape, dtype=block.dtype)

        new_block = block.make_block_same_class(values=values,
                                                placement=block.mgr_locs.as_array)
        blocks.append(new_block)

    # create block manager
    mgr = BlockManager(blocks, axes)

    # create dataframe
    return DataFrame(mgr)


# create a prototype dataframe
import pandas as pd
a = np.empty(0, dtype=('i4,i4,f4,f4,f4,a10'))
df = pd.DataFrame(a)
df['cat_col'] = pd.Series(list('abcabcdeff'), dtype="category")

# allocate an alike dataframe
df1 = allocate_like(df, size=10)

@ ARF1 рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдВрддрд┐рдо рд▓рдХреНрд╖реНрдп рдХреНрдпрд╛ рд╣реИ
рдХреНрдпрд╛ рдЖрдк рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдХреЙрдкреА рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рд╕рдорд╡рд░реНрддреА = рдЭреВрдард╛ рдЖрдо рддреМрд░ рдкрд░ рдпрд╣ рдХрджрдо рдЙрдард╛рдПрдЧрд╛

@jreback рдореИрдВ рдПрдХ рд╕рдВрдкреАрдбрд╝рд┐рдд рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░ рд╕реЗ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЙрд▓рдо-рдмрд╛рдп-рдХреЙрд▓рдо рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдЗрдерди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬрд┐рд╕реЗ рдореИрдВ рдкреНрд░рджрд░реНрд╢рди рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдордзреНрдпрд╕реНрде рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХреЗ рдмрд┐рдирд╛ рд╕реАрдзреЗ рдбреЗрдЯрд╛рдлреНрд░реЗрдо рдореЗрдВ рдЕрд╕рдореНрдкреАрдбрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп numpy рд╕рдорд╛рдзрд╛рди рд╕реЗ рдЙрдзрд╛рд░ рд▓реЗрдирд╛, рдореИрдВ рдбреЗрдЯрд╛рдлреНрд░реЗрдо рдХреЗ рд▓рд┐рдП рд╕реНрдореГрддрд┐ рдХреЛ рдкреВрд░реНрд╡-рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдореИрдВ рдЗрди рдЖрд╡рдВрдЯрд┐рдд рд╕реНрдореГрддрд┐ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЛ рдореЗрд░реА рд╕рд╛рдЗрдерди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдкрд╛рд╕ рдХрд░ рд╕рдХреВрдВ рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рд╕реА-рдкреЙрдЗрдВрдЯрд░реНрд╕/рд╕реА-рдПрд░реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЙрди рд╕реНрдореГрддрд┐ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдордзреНрдпрд╕реНрде рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЪрд░рдгреЛрдВ (рдпрд╛ рдордзреНрдпрд╕реНрде рдкрд╛рдпрдерди рд╡рд╕реНрддреБрдУрдВ рдХреА рдкреАрдврд╝реА) рдХреЗ рдмрд┐рдирд╛ рд╕реАрдзреЗ рдбреЗрдЯрд╛рдлреНрд░реЗрдо рднрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЬрд╛рд░реА рдЧрд┐рд▓ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХрдИ рд╕рд╛рдЗрдерди рдереНрд░реЗрдбреНрд╕ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛рдлреНрд░реЗрдо рднрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдПрдХ рдлреНрд░рд┐рдВрдЬ рд▓рд╛рдн рд╣реЛрдЧрд╛ред

(рд╕рд░рд▓реАрдХреГрдд) рдЫрджреНрдо рдХреЛрдб рдореЗрдВ рдореБрд╣рд╛рд╡рд░рд╛ рдХреБрдЫ рдРрд╕рд╛ рд╣реЛрдЧрд╛:

df = fn_to_allocate_memory()
colums = df.columns.values
column_indexes = []
for i in xrange(len(df._data.blocks)):
    column_indexes.extend(df._data.blocks[i].mgr_locs.as_array)
block_arrays = [df._data.blocks[i].values for i in len(df._data.blocks)]

some_cython_library.fill_dataframe_with_content(columns, column_indexes, block_arrays)

рдХреНрдпрд╛ рдЖрдкрдХреЛ рдпрд╣ рдмрд╛рдд рдареАрдХ рд▓рдЧрддреА рд╣реИ?

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ concat рд╕рд╛рде copy=False рд╕рдорд╛рди dtypes рд╡рд╛рд▓реЗ рдХреЙрд▓рдо рдХреЛ рдмреНрд▓реЙрдХ рдореЗрдВ рдирд╣реАрдВ рдЬреЛрдбрд╝реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд▓рд╛рдЗрди рдХреЗ рдиреАрдЪреЗ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдЗрд╕реЗ рдЯреНрд░рд┐рдЧрд░ рдХрд░реЗрдВрдЧреЗ - рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдореИрдВ рдмрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдпрд╛ рдХреНрдпрд╛ рдореИрдВрдиреЗ рдкрд╛рдВрдбрд╛ рдХреЗ рдЖрдВрддрд░рд┐рдХ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдЧрд▓рдд рд╕рдордЭрд╛?

рдЬрдмрдХрд┐ рдореИрдВрдиреЗ рдмрдбрд╝реЗ (рдЧреИрд░-рднрд░реЗ рд╣реБрдП) рдбреЗрдЯрд╛рдлреНрд░реЗрдо (рдХрд╛рд░рдХ ~ 6.7) рдХреА рддрд╛рддреНрдХрд╛рд▓рд┐рдХрддрд╛ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдкреНрд░рдЧрддрд┐ рдХреА рд╣реИ, рдореИрдВ рдЕрднреА рднреА рд╕реБрдиреНрди рдЧрддрд┐ рд╕реЗ рджреВрд░ рд╣реВрдВред ~ 90 рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рдФрд░ рдХрд╛рд░рдХ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП...

In [157]: a = np.empty(int(1e6), dtype=('i4,i4,f4,f4,f4,a10'))

In [158]: df = pd.DataFrame(a)

In [162]: %timeit np.empty(int(1e6), dtype=('i8,i4,i4,f4,f4,f4,a10'))
1000 loops, best of 3: 247 ┬╡s per loop

In [163]: %timeit allocate_like(df, size=int(1e6))
10 loops, best of 3: 22.4 ms per loop

In [164]: %timeit pd.DataFrame(np.empty(int(1e6), dtype=('i4,i4,f4,f4,f4,a10')))

10 loops, best of 3: 150 ms per loop

рдПрдХ рдФрд░ рдЙрдореНрдореАрдж рдпрд╣ рдереА рдХрд┐ рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕рдорд╛рди рдЖрдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХреЗ рддреНрд╡рд░рд┐рдд рджреЛрд╣рд░рд╛рд╡ рдХреЛ рддреНрд╡рд░рд┐рдд рд░реВрдк рд╕реЗ рджреЛрд╣рд░рд╛рдП рдЬрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдЫреЛрдЯреЗ-рдорд╛рддреНрд░рд╛ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рдХреЛ рдмрд╛рд░-рдмрд╛рд░ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЕрдм рддрдХ рдХрд╛ рдореБрдЦреНрдп рдЙрджреНрджреЗрд╢реНрдп рдирд╣реАрдВ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдирдЬрд╛рдиреЗ рдореЗрдВ рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдмреЗрд╣рддрд░ рдкреНрд░рдЧрддрд┐ рдХреА: рдХреЗрд╡рд▓ ~ 4.8 рдХрд╛ рдПрдХ рдХрд╛рд░рдХ рд╕реБрдиреНрди рдЧрддрд┐ рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред

In [157]: a = np.empty(int(1e6), dtype=('i4,i4,f4,f4,f4,a10'))

In [158]: df = pd.DataFrame(a)

In [159]: %timeit np.empty(0, dtype=('i8,i4,i4,f4,f4,f4,a10'))
10000 loops, best of 3: 79.9 ┬╡s per loop

In [160]: %timeit allocate_like(df, size=0)
1000 loops, best of 3: 379 ┬╡s per loop

In [161]: %timeit pd.DataFrame(np.empty(0, dtype=('i4,i4,f4,f4,f4,a10')))
1000 loops, best of 3: 983 ┬╡s per loop

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ

рдЙрдкрд░реЛрдХреНрдд рд╕рдордп рдмрд╣реБрдд рдирд┐рд░рд╛рд╢рд╛рд╡рд╛рджреА рдЪрд┐рддреНрд░ рдЪрд┐рддреНрд░рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╕реЗрдм рдХреА рддреБрд▓рдирд╛ рд╕рдВрддрд░реЗ рд╕реЗ рдХрд░рддреЗ рд╣реИрдВ: рдЬрдмрдХрд┐ рд╕реБрдиреНрди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЙрд▓рдо рдХреЛ рджреЗрд╢реА рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреА рд▓рдВрдмрд╛рдИ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкрд╛рдВрдбрд╛ рдореЗрдВ рд╕рдордХрдХреНрд╖ рдХреЙрд▓рдо рдХреЛ рдкрд╛рдпрдерди рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╕рдорд╛рди рд░реВрдк рд╕реЗ рддреБрд▓рдирд╛ рдХрд░рдиреЗ рд╕реЗ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдЗрдВрд╕реНрдЯреЗрдВрдЯреЗрд╢рди рдХреЛ рдЗрдВрдбреЗрдХреНрд╕ рдЬрдирд░реЗрд╢рди рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде рд╕реБрдиреНрди рдЧрддрд┐ рдкрд░ рдзрдХреЗрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдЗрдВрд╕реНрдЯреЗрдВрдЯреЗрд╢рди рд╕рдордп рдХреЗ рд▓рдЧрднрдЧ 92% рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрддрд╛ рд╣реИред

@ ARF1 рдпрджрд┐ рдЖрдк рддреЗрдЬ рдЧрддрд┐ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдмрд╕ numpy рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдЖрдк рд╕рд╛рдЗрдерди рдореЗрдВ рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рд╕реЙрд▓рдиреНрд╕ рдЖрдкрдХреА рдЧрдгрдирд╛рдУрдВ рдХреЛ рддреЛрдбрд╝рдирд╛, рд╕рд╛рдЗрдерди рдХреЛ рдПрдХрд▓ рдкреНрд░рдХрд╛рд░ рдкрд╛рд╕ рдХрд░рдирд╛ рдпрд╛ рдмрд╕ рдПрдХ рдмрдбрд╝реА рдорд╢реАрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИред

рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдбреЗрдЯрд╛ рдХрд╛ рд╡рд░реНрдгрди рдФрд░ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рд╡рд╣ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдирдХреЗ рд╕рд╛рде рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рд▓рдЧрднрдЧ рд╕рднреА рдкрд╛рдВрдбрд╛ рдСрдкрд░реЗрд╢рди рдХреЙрдкреАред (рдЬреИрд╕рд╛ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕реБрдиреНрди рд╕рдВрдЪрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ), рдЗрд╕рд▓рд┐рдП рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рди рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

@jreback рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ numpy рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдорд┐рд╢реНрд░рд┐рдд рдкреНрд░рдХрд╛рд░ рд╣реИрдВ рдЬреЛ рдХреЗрд╡рд▓ (рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд░реВрдк рд╕реЗ) рд╕рдВрд░рдЪрд┐рдд рд╕рд░рдгреА рдХреЗ рд╕рд╛рде рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рдВрд░рдЪрд┐рдд рд╕рд░рдгрд┐рдпрд╛рдБ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдкрдВрдХреНрддрд┐-рдкреНрд░рдореБрдЦ рдЖрджреЗрд╢рд┐рдд рд╣реИрдВ рдЬреЛ рдореЗрд░реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЖрдпрд╛рдо рдХреЗ рд╕рд╛рде рдЦрд░рд╛рдм рдкреНрд░рджрд░реНрд╢рди рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддреА рд╣реИрдВред рдкрд╛рдВрдбрд╛ рдЕрдкрдиреЗ рдХреЙрд▓рдо-рдкреНрд░рдореБрдЦ рдСрд░реНрдбрд░рд┐рдВрдЧ рдХреЗ рдХрд╛рд░рдг рдкреНрд░рд╛рдХреГрддрд┐рдХ рд╡рд┐рдХрд▓реНрдк рдХреА рддрд░рд╣ рджрд┐рдЦрддреЗ рд╣реИрдВ - рдЕрдЧрд░ рдореИрдВ рдбреЗрдЯрд╛ рдХреЛ рдЕрдЪреНрдЫреА рдЧрддрд┐ рд╕реЗ рдбреЗрдЯрд╛рдлреНрд░реЗрдо рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдмреЗрд╢рдХ рд╡рд┐рдХрд▓реНрдк рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП numpy arrays рдХреЗ рдПрдХ рддрд╛рдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рджрд░реНрдж рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕реНрд▓рд╛рдЗрд╕рд┐рдВрдЧ рдЖрджрд┐ рдЕрдм рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред

рд╕рд╛рдорд╛рдиреНрдп рд╕реЙрд▓рдиреНрд╕ рдЖрдкрдХреА рдЧрдгрдирд╛рдУрдВ рдХреЛ рдЦрдВрдбрд┐рдд рдХрд░рдирд╛ рд╣реИ, рд╕рд╛рдЗрдерди рдХреЛ рдПрдХрд▓ рдкреНрд░рдХрд╛рд░ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реИред

рдореИрдВ рдЕрдкрдиреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ block_arrays рдЪрд░ рдХреЗ рд╕рд╛рде рдпрд╣реА рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдпрд╛ рдмрд╕ рдПрдХ рдмрдбрд╝реА рдорд╢реАрди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред

100+ рддреЗрдЬ рдХрд╛ рдПрдХ рдХрд╛рд░рдХ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рддреНрддреАрдп рдЪреБрдиреМрддреА рд╣реИред ;-)

@ ARF1 рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдмрд╣реБрдд рд╣реА рдЕрдЬреАрдм рдореЙрдбрд▓ рд╣реИ рдХрд┐ рдЪреАрдЬреЗрдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВред рдЖрдорддреМрд░ рдкрд░ рдЖрдк рдХрдо рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдлрд╝реНрд░реЗрдо рдмрдирд╛рддреЗ рд╣реИрдВ, рдлрд┐рд░ рдЙрди рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдирд┐рд░реНрдорд╛рдг рдХреА рдЧрддрд┐ рдХрд┐рд╕реА рднреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЧрдгрдирд╛ рдпрд╛ рд╣реЗрд░рдлреЗрд░ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЕрдВрд╢ рд╣реИред

@jreback : рдпрд╣ рдПрдХ рдЕрдЬреАрдм рдореЙрдбрд▓ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдк рдЪреАрдЬреЛрдВ рдХреЛ рд╢реБрджреНрдз рдЕрдЬрдЧрд░ рдХреЗ рдирдЬрд░рд┐рдП рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ рддреЛ рд╢рд╛рдпрдж рдпрд╣ рдПрдХ рдЕрдЬреАрдм рдореЙрдбрд▓ рд╣реИред рдпрджрд┐ рдЖрдк рд╕реА ++ рдХреЛрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдкрд╛рдЗрдерди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдбреЗрдЯрд╛ рдкрдврд╝рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдкрд╛рдпрдерди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдкреНрд░рджрд░реНрд╢рди рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╕рдВрджрд░реНрдн рдореЗрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдк рдкрд╛рдЗрдерди рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╕реНрддрд╛ рдФрд░ рд╕реНрдерд┐рд░ (рд╕реНрдореГрддрд┐ рд╕реНрдерд╛рди рдХреЗ рдЕрд░реНрде рдореЗрдВ) рддрд░реАрдХрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдореБрдЭреЗ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкрд╛рдВрдбрд╛ рдмреЛрд░реНрдбреЛрдВ рдкрд░ рдпрд╣ рд░рд╡реИрдпрд╛ рдЖрдо рдХреНрдпреЛрдВ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рд╣реИ, рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдкрд╛рдВрдбрд╛ рд╕реБрдиреНрди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реИ, рдлрд┐рд░ рднреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд╛рдВрдбрд╛ рдХреЗ "рд╢реАрд░реНрд╖ рдкрд░" рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдкрд╛рдВрдбрд╛ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдЕрдм рддрдХ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╡рд╛рдВрдЫрдиреАрдп рдкреНрд░рдХрд╛рд░ рд╣реИ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕реА рдХреЛрдб рд╣реИ рдЬреЛ рд╕рд╛рд░рдгреАрдмрджреНрдз рдбреЗрдЯрд╛ рдХреЛ рдЕрдЬрдЧрд░ рдореЗрдВ рдереВрдХрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред

рдХреГрдкрдпрд╛ рд╡рд╣ рди рд▓реЗрдВ рдЬреЛ рдореИрдВ рдирдХрд╛рд░рд╛рддреНрдордХ рд░реВрдк рд╕реЗ рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдВ, рдЕрдЧрд░ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдкрд╛рдВрдбрд╛ рдбреЗрдЯрд╛рдлреНрд░реЗрдо рдЗрддрдиреЗ рднрдпрд╛рдирдХ рдереЗ, рддреЛ рдореИрдВ рд╕рд┐рд░реНрдл рд╕реБрдиреНрди рд░рд┐рдХреЙрд░реНрдб рдпрд╛ рдРрд╕рд╛ рдХреБрдЫ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

@ ARF1 : рдЖрдЦрд┐рд░рдХрд╛рд░, рдореБрдЭреЗ рдХрд╛рд░рдг рдпрд╛рдж рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдореИрдВ рдпрд╣ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ рдХрд┐ рдХреЙрдкреА = рдЧрд▓рдд рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╕рд░рдгреА рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдлреНрд░реЗрдо рдмрдирд╛рдирд╛, рдФрд░ рдлрд┐рд░ рдХреЙрдкреА = рдЧрд▓рдд рдХреЗ рд╕рд╛рде pandas.concat рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЙрдиреНрд╣реЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдПред рдЬрдм рдЖрдк рдПрдХ numpy array рд╕реЗ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХрд╛ DataFrame рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ numpy array рдХреЗ рдУрд░рд┐рдПрдВрдЯреЗрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВред рдпрджрд┐ рдУрд░рд┐рдПрдВрдЯреЗрд╢рди рдЧрд▓рдд рд╣реИ, рддреЛ рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓рдо рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд numpy arrays рдЧреИрд░-рддреБрдЪреНрдЫ рд░реВрдк рд╕реЗ рдШреБрдорд╛рд╡рджрд╛рд░ рд╣реЛрдВрдЧреЗ, рдФрд░ рдкрд╛рдВрдбрд╛ рдЗрд╕реЗ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкрд╣рд▓реЗ рдЕрд╡рд╕рд░ рдкрд░ рдПрдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдпреЗрдВрдЧреЗред рдЖрдк рдЕрдВрдд рдореЗрдВ рд╢реНрд░реЗрдгреАрдмрджреНрдзреЛрдВ рд╕реЗ рдирд┐рдкрдЯ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╕рдореЗрдХрд┐рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рд╢реЗрд╖ рдлреНрд░реЗрдо рдХреА рдХрд┐рд╕реА рднреА рдкреНрд░рддрд┐рдпреЛрдВ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рдХреБрдЫ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЛ рдЪрд░рдг рджрд░ рдЪрд░рдг рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд▓рдЧрд╛рддрд╛рд░ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдбреЗрдЯрд╛ (рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд numpy рд╕рд░рдгреА рдХреЗ array_interface рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рдкрд░ рдкрдХрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реИрдВ рдХрд┐ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рд░рд╣реА рд╣реИред рдкрдВрдбреЛрдВ рджреНрд╡рд╛рд░рд╛ рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рдирд┐рд░реНрдгрдп рд╣реИ рдХрд┐ рдХреЙрдкреА/рдЗрдирдкреНрд▓реЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░реНрд╕ рдХреЛ рд╕рдореНрдорд╛рдирд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣реА рд╣реИ, рднрд▓реЗ рд╣реА рдЖрдк рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдХреЙрдкреА = рдЧрд▓рдд рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдлрд┐рд░ рднреА рдкрд╛рдВрдбрд╛ рдПрдХ рдХреЙрдкреА рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░реЗрдВрдЧреЗ рдпрджрд┐ рдпрд╣ рддрдп рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рддрд░реНрдХреЛрдВ рдХреЛ рд╕рдореНрдорд╛рдирд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддреЛ рдкрд╛рдВрдбрд╛ рдЗрд╕реЗ рдлреЗрдВрдХрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдХреЛрдб рд▓рд┐рдЦрддрд╛ рд╣реИ рдЬреЛ рдкреНрд░рддрд┐рдпреЛрдВ рдХреЛ рдмрд╣реБрдд рдердХрд╛рдК рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░ рдмреЗрд╣рдж рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрджрд┐ рдЖрдк рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЧрд▓рддреА рд╕реЗ рдмрд╛рдж рдореЗрдВ рдХреБрдЫ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдФрд░ рдпрд╣ рдЪреБрдкрдЪрд╛рдк рд╣реЛрдЧрд╛ рдФрд░ рдЖрдкрдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмрд░реНрдмрд╛рдж рдХрд░ рджреЗрдЧрд╛ред

@quicknir рдЕрдЧрд░ рдЖрдк рдРрд╕рд╛ рдХрд╣рддреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЪреАрдЬреЛрдВ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдмрд╕ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдХрд╣рд╛, рдФрд░ рдлрд┐рд░ рд╕реЗ рдЬрд╛рдВрдЪ рд╣реЛрдЧреАред рдирд┐рд░реНрдорд╛рдг рдХрд╛ рд╕рдордп рдХрд┐рд╕реА рднреА рдЪреАрдЬ рдкрд░ рд╣рд╛рд╡реА рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЪреАрдЬреЛрдВ рдХреЛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдбреЗрдЯрд╛рдлреНрд░реЗрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╕реНрдерд╛рди рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ? рдЕрдЧрд░ рдпрд╣ рд╣рд╛рд╡реА рдирд╣реАрдВ рд╣реИ, рддреЛ рд╕рдорд╕реНрдпрд╛ рдХреНрдпрд╛ рд╣реИ?

@jreback рдЖрдк рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдкреНрд░реЛрдлрд╛рдЗрд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕реА ++ рдФрд░ рдкрд╛рдпрдерди рдХреЛрдб рд╣реИ рдЬреЛ рджреЛрдиреЛрдВ рдПрдХ рд╣реА рдбреЗрдЯрд╛ рдкреНрд░рд╛рд░реВрдк рд╕реЗ рд╕рд╛рд░рдгреАрдмрджреНрдз рдбреЗрдЯрд╛ рдХреЛ рдбреА-рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬ рдХрд░рддреЗ рд╣реИрдВред рдЬрдмрдХрд┐ рдореБрдЭреЗ рдЙрдореНрдореАрдж рдереА рдХрд┐ рдкрд╛рдпрдерди рдХреЛрдб рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛ рдУрд╡рд░рд╣реЗрдб рд╣реЛрдЧрд╛, рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдЕрдВрддрд░ рдЫреЛрдЯрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдбрд┐рд╕реНрдХ рдкрдврд╝рдиреЗ рдХрд╛ рд╕рдордп рд╣рд╛рд╡реА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рдерд╛, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдореИрдВ рдЧрдпрд╛ рдФрд░ рдмрд╣реБрдд рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рдХреЙрдкрд┐рдпреЛрдВ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪреАрдЬреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛, рдЕрдЬрдЧрд░ рд╕рдВрд╕реНрдХрд░рдг рд╕реА ++ рдХреЛрдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рджреЛ рдмрд╛рд░ рд▓рдВрдмрд╛ рдпрд╛ рдмрджрддрд░ рд▓реЗ рд░рд╣рд╛ рдерд╛, рдФрд░ рд▓рдЧрднрдЧ рд╕рднреА рдУрд╡рд░рд╣реЗрдб рд╕рд┐рд░реНрдл рдбреЗрдЯрд╛рдлреНрд░реЗрдо рдмрдирд╛рдиреЗ рдореЗрдВ рдерд╛ред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдмрд╣реБрдд рдмрдбрд╝реЗ рдЖрдХрд╛рд░ рдХрд╛ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдмрдирд╛рдиреЗ рдореЗрдВ рд▓рдЧрднрдЧ рдЙрддрдирд╛ рд╣реА рд╕рдордп рд▓рдЧрд╛, рдЬрд┐рд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдХреА рдореБрдЭреЗ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдереА, рдЬреИрд╕реЗ рдХрд┐ рдЙрд╕ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдореЗрдВ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рджреЗрдЦреЗ рдЧрдП рдбреЗрдЯрд╛ рдХреЛ рдкрдврд╝рдирд╛, рдбреАрдХрдВрдкреНрд░реЗрд╕ рдХрд░рдирд╛ рдФрд░ рд▓рд┐рдЦрдирд╛ред рдпрд╣ рдмреЗрд╣рдж рдЦрд░рд╛рдм рдкреНрд░рджрд░реНрд╢рди рд╣реИред

рдпрджрд┐ рдореИрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдЗрд╕ рдХреЛрдб рдХрд╛ рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдерд╛, рддреЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреЛ рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рд╣рд╛рд╡реА рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВ рдПрдХ рдбреЗрд╡рд▓рдкрд░ рд╣реВрдВ, рдФрд░ рдЗрд╕ рдХреЛрдб рдХреЗ рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреНрдп рд▓реЛрдЧ рд╣реИрдВред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рд╡реЗ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реЛрдВрдЧреЗ, рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдбрд┐рд╕реНрдХ рдкрд░ рдбреЗрдЯрд╛ рдХреА рд╕реНрдореГрддрд┐ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИред рдпрджрд┐ рд╡реЗ рдбрд┐рд╕реНрдХ рдкрд░ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдЕрднреА рднреА рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдкреНрд░рд╛рд░реВрдк рд╕реЗ рдЧреБрдЬрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдореИрдВ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдФрд░ рддрд░реАрдХреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП numpy рдирд┐рд░реНрдорд╛рдг), рд▓реЗрдХрд┐рди рдпрд╣ рдХреЛрдб рдореЗрдВ рдмреНрд░рд╛рдВрдЪрд┐рдВрдЧ рдореЗрдВ рдХрд╛рдлреА рд╡реГрджреНрдзрд┐ рдХрд░реЗрдЧрд╛, рдФрд░ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдореЗрд░реЗ рд▓рд┐рдП рдЪреАрдЬреЛрдВ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдХрдард┐рди рдмрдирд╛ рджреЗрдЧрд╛ред рдпрджрд┐ рдХреЛрдИ рдореВрд▓рднреВрдд рдХрд╛рд░рдг рдерд╛ рдХрд┐ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХреЛ рдЗрддрдирд╛ рдзреАрдорд╛ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ, рддреЛ рдореИрдВ рд╕рдордЭреВрдВрдЧрд╛, рдФрд░ рддрдп рдХрд░реВрдБрдЧрд╛ рдХрд┐ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо, рд╕реБрдиреНрди, рдпрд╛ рджреЛрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рд▓реЗрдХрд┐рди рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЗрддрдирд╛ рдзреАрдорд╛ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИред рдХреЛрдИ рдПрдХ DataFrame.empty рд╡рд┐рдзрд┐ рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЯреБрдкрд▓реНрд╕ рдХреА рдПрдХ рд╕рд░рдгреА рд▓реЗрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ рдЯрдкрд▓ рдореЗрдВ рдХреЙрд▓рдо рдХрд╛ рдирд╛рдо рдФрд░ рдкреНрд░рдХрд╛рд░, рдФрд░ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реЛрддреА рд╣реИред

рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдЙрдкрдпреЛрдХреНрддрд╛рдУрдВ рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓реЗрдЦрдХреЛрдВ рдХреЗ рдмреАрдЪ рдпрд╣реА рдЕрдВрддрд░ рд╣реИред рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд▓рд┐рдЦрдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдкрдирд╛ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рдЬреНрдпрд╛рджрд╛ рдЖрд╕рд╛рди рд╣реИред рдФрд░ рдпрд╣ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рдЖрдкрдХреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЕрдиреНрдп рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд▓реЗрдЦрдХреЛрдВ рдХреЗ рдмрдЬрд╛рдп рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХрд╛ рдЦрд╛рд▓реА рдЖрд╡рдВрдЯрди рдкрд╛рдВрдбрд╛ рдореЗрдВ рдХрдо рд▓рдЯрдХрд╛ рд╣реБрдЖ рдлрд▓ рд╣реЛрдЧрд╛ рдЬреЛ рдореЗрд░реЗ рдФрд░ @ ARF1 рдЬреИрд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛ рджреЗрдЧрд╛ред

рдареАрдХ рд╣реИ рдЕрдЧрд░ рдЖрдк рдПрдХ рдЙрдЪрд┐рдд рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдП рджрд╕реНрддрд╛рд╡реЗрдЬ рд╕реЙрд▓, рд╕рднреА рдХрд╛рдиреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдкрд╛рдВрдбрд╛ рдХреЗ рдкрд╛рд╕ рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛/рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╣реИрдВред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдЗрддрдирд╛ рдмрд╣реБрдореБрдЦреА рд╣реИ рдФрд░ рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЗрд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реА рддреНрд░реБрдЯрд┐ рдЬрд╛рдБрдЪ рдФрд░ рдЕрдиреБрдорд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдКрдкрд░ рдмрддрд╛рдП рдЕрдиреБрд╕рд╛рд░ рдЖрдк рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред

рдореИрдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧрд╛рдиреЗ рдХреЛ рддреИрдпрд╛рд░ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рддрднреА рдЬрдм рдХреБрдЫ рдкрд╛рдВрдбрд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рдбрд┐рдЬрд╛рдЗрди рдкрд░ рдХреБрдЫ рдЙрдЪрд┐рдд рд╕рд╣рдорддрд┐ рд╣реЛред рдЕрдЧрд░ рдореИрдВ рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╕рдмрдорд┐рдЯ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдХреБрдЫ рдЪреАрдЬреЗрдВ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд▓реЛрдЧ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИред рдпрд╛ рдЕрдЧрд░ рдореИрдВ рдЗрд╕рдореЗрдВ рджрд╕ рдШрдВрдЯреЗ рд▓рдЧрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рд╕рдлрд╛рдИ рд╕реЗ рдХреБрдЫ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рдХреБрдЫ рдРрд╕рд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд▓реЛрдЧ рдЖрдкрддреНрддрд┐рдЬрдирдХ рдорд╛рдирддреЗ рд╣реИрдВ, рдпрд╣ рднреА рдЕрдЪреНрдЫрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рдПрдХреНрд╕ рдШрдВрдЯреЗ рдЦрд░реНрдЪ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реВрдВ рдФрд░ рдХрд╣рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реИ, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрдбрд╝рдмрдбрд╝ рд╣реИ, рд╣рдореЗрдВ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЗрд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд╛рдл рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреЛрдбрдмреЗрд╕ рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░рддрд╛ рд╣реИ, рдЖрджрд┐ред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдЗрд╕ рднрд╛рд╡рдирд╛ рд╕реЗ рджреВрд░ рд╣реВрдВ, рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдХрд┐рд╕реА рдУрдПрд╕рдПрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдмрдбрд╝рд╛ рдпреЛрдЧрджрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реИ рдХрд┐ рдЕрдкрдиреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреЛрд╕реНрдЯ рдореЗрдВ рдореИрдВрдиреЗ рдЗрд╕реА рдЪреАрдЬрд╝ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рджреЗрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рдерд╛, рдФрд░ рдлрд┐рд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдореБрдЭреЗ рдЖрдкрд╕реЗ рдпрд╣ рдЖрднрд╛рд╕ рд╣реБрдЖ рдХрд┐ рдпрд╣ рдкрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП "рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░" рдерд╛ред

рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдореИрдВ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓ рд╕рдХрддрд╛ рд╣реВрдВ, рдЬрд┐рддрдирд╛ рд╣реЛ рд╕рдХреЗ рдЙрддрдирд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбрд┐рдЬрд╛рдЗрди рдкреНрд░рд╕реНрддрд╛рд╡ рддреИрдпрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдФрд░ рдПрдХ рдмрд╛рд░ рдлреАрдбрдмреИрдХ/рдЕрд╕реНрдерд╛рдпреА рдЕрдиреБрдореЛрджрди рд╣реЛрдиреЗ рдкрд░ рдореИрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдкрд░ рдЙрд╕ рдкрд░ рдХрд╛рдо рдХрд░реВрдВрдЧрд╛ред

@quicknir рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдкреВрд░реЗ рдЯреЗрд╕реНрдЯ рд╕реВрдЯ рдХреЛ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдХрд┐ рдХрд╛рдлреА рд╡реНрдпрд╛рдкрдХ рд╣реИред

рдпрд╣ рдкрд╛рдВрдбрд╛ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдкреАрдЖрдИ рдХреБрдЫ рд╣рдж рддрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдиреБрдХреВрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдХреНрдпреЛрдВ рдкрд╕рдВрдж рдирд╣реАрдВ рдЖрдпрд╛

concat(list_of_arrays,axis=1,copy=False) рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рд╡рд╣реА рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдФрд░ рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рд╕реНрдкрд╖реНрдЯ рди рдХрд░реЗрдВ рдХрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ)ред

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

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдореИрдВрдиреЗ рдпрд╣ рддрдХрдиреАрдХ рдХреА рдереА рддрдм рднреА рдореИрдВ рдХреБрдЫ рдкреНрд░рддрд┐рдпреЛрдВ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ рдерд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛, рдкрд╛рдВрдбрд╛ рд╣рдореЗрд╢рд╛ рдХреЙрдкреА = рдЧрд▓рдд рдХрд╛ рд╕рдореНрдорд╛рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рджреЗрдЦрдирд╛ рдмрд╣реБрдд рдердХрд╛рдК рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдХреЛрдб рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЙрдкреА рдХрд░ рд░рд╣рд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдкрд╛рдВрдбрд╛ 17 рдХреЗ рд▓рд┐рдП, рджреЗрд╡ рдХреЙрдкреА = рдЯреНрд░реВ рдбрд┐рдлреЙрд▓реНрдЯ рдмрдирд╛рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдлрд┐рд░ рдХреЙрдкреА = рдЧрд▓рдд рдлреЗрдВрдХрддрд╛ рд╣реИ рдЬрдм рдПрдХ рдХреЙрдкреА рдХреЛ рдорд┐рдЯрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╡реИрд╕реЗ рднреАред

рджреВрд╕рд░рд╛, рдПрдХ рдФрд░ рдореБрджреНрджрд╛ рдмрд╛рдж рдореЗрдВ рдХреЙрд▓рдо рдХреЛ рдлрд┐рд░ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдирд╛ рдерд╛ред рдпрд╣ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ рдЕрдЬреАрдм рдерд╛, рдПрдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХреЗ рдмрд┐рдирд╛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рдореВрд▓ рд░реВрдк рд╕реЗ рдХреЙрд▓рдо рдирд╛рдо рдкреВрд░реНрдгрд╛рдВрдХ рдмрдирд╛рдирд╛ рдерд╛ рдЬрд┐рд╕реЗ рд╡рд╛рдВрдЫрд┐рдд рдЕрдВрддрд┐рдо рдХреНрд░рдо рдореЗрдВ рдЖрджреЗрд╢ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореИрдВрдиреЗ рддрдм рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рд╕реЙрд░реНрдЯ рдХрд┐рдпрд╛ рдерд╛ред рдореИрдВрдиреЗ рдлрд┐рд░ рдХреЙрд▓рдо рдирд╛рдо рдмрджрд▓ рджрд┐рдПред

рддреАрд╕рд░рд╛, рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдкреНрд░рдХрд╛рд░реЛрдВ (numpy datetime64) рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдпрд╛рдВ рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рдереАрдВред

рдореИрдВрдиреЗ рдпрд╣ рдХреЛрдб рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рд▓рд┐рдЦрд╛ рдерд╛ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рддрд╛рдЬрд╝рд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЧрд▓рддрд┐рдпрд╛рдБ рдХреА рд╣реЛрдВ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕реЗ рдмрд╣реБрдд рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рджреЗрдЦрд╛ рдФрд░ рд╡реЗ рдкрд░рд┐рдгрд╛рдо рдереЗ рдЬреЛ рдореИрдВ рдЙрд╕ рд╕рдордп рд▓реЗрдХрд░ рдЖрдпрд╛ рдерд╛ред

рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдКрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб numpy arrays рдХреЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ: TypeError: рдПрдХ рдЧреИрд░-NDFrame рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдЙрдиреНрд╣реЗрдВ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред

рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдпрд╣рд╛рдВ рдпрд╛ рдКрдкрд░ рдЬреЛ рд╕рдорд╛рдзрд╛рди рджрд┐рдпрд╛ рд╣реИ, рд╡рд╣ рдореБрдЭреЗ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рдЕрднреА рддрдХ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХрд╛рдо рдХрд░рдирд╛ рдмрд╛рдХреА рд╣реИред

@quicknir рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдКрдкрд░ рдореЗрд░рд╛ рдЙрджрд╛рд╣рд░рдг рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдХреГрдкрдпрд╛ рд╡рд╣реА рдкреНрд░рджрд╛рди рдХрд░реЗрдВ рдЬреЛ рдЖрдк рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдореИрдВ рдЖрдкрдХреА рдорджрдж рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

pd.concat([np.zeros((2,2))], рдЕрдХреНрд╖ = 1, рдХреЙрдкреА = рдЧрд▓рдд)

рдореИрдВ рдкрд╛рдВрдбрд╛ 0.15.2 рдкрд░ рд╣реВрдВ, рддреЛ рд╢рд╛рдпрдж рдЗрд╕рдиреЗ 0.16 рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛?

рдХреГрдкрдпрд╛ pd.concat рдХреА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝-рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрдврд╝реЗрдВред рдЖрдкрдХреЛ рдПрдХ DataFrame

рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ copy=True рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИ

рдареАрдХ рдпрд╣реА рдореИрдВрдиреЗ рд▓рд┐рдЦрд╛ рд╣реИред рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдКрдкрд░ рд▓рд┐рдЦреЗ рдЧрдП рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рдореЗрдВ list_of_arrays рдерд╛, рди рдХрд┐ list_of_dataframesред рд╡реИрд╕реЗ рднреА, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рд╕рдордЭрддреЗ рд╣реИрдВред рдореИрдВрдиреЗ pd.concat рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╛рдкреНрдд рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдЧреИрд░-рддреБрдЪреНрдЫ рд╣реИ, рд▓реЛрдЧреЛрдВ рдХреА рдпрд╛рддреНрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреЛрдЪрд╛ рдХрд╛ рдПрдХ рдкреВрд░рд╛ рд╕рдореВрд╣ рд╣реИ:

1) рдЖрдкрдХреЛ DataFrames рдХреА рдПрдХ рд╕реВрдЪреА рдмрдирд╛рдиреА рд╣реЛрдЧреАред рдкреНрд░рддреНрдпреЗрдХ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рддреЛ рдЖрдкрдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рднреА рдЕрд▓рдЧ-рдЕрд▓рдЧ dtypes рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

2) рдкреНрд░рддреНрдпреЗрдХ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХреЛ рд╡рд╛рдВрдЫрд┐рдд dtype, рд╕рдорд╛рди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, рд╕реНрддрдВрднреЛрдВ рдХреА рд╡рд╛рдВрдЫрд┐рдд рд╕рдВрдЦреНрдпрд╛, рдФрд░ рдХреНрд░рдо = 'F' рдзреНрд╡рдЬ рдХреЗ рдПрдХрд▓ numpy рд╕рд░рдгреА рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП; рдЕрдЧрд░ рдЖрджреЗрд╢ = 'рд╕реА' (рдбрд┐рдлрд╝реЙрд▓реНрдЯ) рддреЛ рдкрд╛рдВрдбрд╛ рдЕрдХреНрд╕рд░ рдкреНрд░рддрд┐рдпрд╛рдВ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрдм рдпрд╣ рдЕрдиреНрдпрдерд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ред

3) рдЕрд╡рд╣реЗрд▓рдирд╛ 1) рд╢реНрд░реЗрдгреАрдмрджреНрдзреЛрдВ рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рдПрдХ рдмреНрд▓реЙрдХ рдореЗрдВ рд╕рдорд╛рдореЗрд▓рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рдмрд╛рдж рдореЗрдВ рдЙрдирд╕реЗ рдирд┐рдкрдЯ рд╕рдХреЗрдВред

4) рдЬрдм рдЖрдк рд╕рднреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдХреЙрд▓рдо рдХреЛ рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд╛рдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЙрд╕ рдХреНрд░рдо рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЕрдиреНрдпрдерд╛ рдкреНрд░рддрд┐рдпреЛрдВ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдП рдмрд┐рдирд╛ рдХреЙрд▓рдо рдХреНрд░рдо рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

5) рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХреА рдЕрдкрдиреА рд╕реВрдЪреА рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдХреЙрдиреНрд╕реИрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЖрдкрдХреЛ рд╢реНрд░рдорд╕рд╛рдзреНрдп рд░реВрдк рд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЖрдкрдиреЗ рдХреБрдЫ рднреА рдЧрдбрд╝рдмрдбрд╝ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреЙрдкреА = рдЧрд▓рдд рдирд╣реАрдВ рдлреЗрдВрдХреЗрдЧрд╛ рдЕрдЧрд░ рдПрдХ рдХреЙрдкреА рдХреЛ рд╣рдЯрд╛ рдирд╣реАрдВ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЪреБрдкрдЪрд╛рдк рдХреЙрдкреА рдХрд░реЗрдВред

6) рдЕрдкрдиреЗ рдЗрдЪреНрдЫрд┐рдд рдХреНрд░рдо рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓рдо рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рд╕реЙрд░реНрдЯ рдХрд░реЗрдВ, рдлрд┐рд░ рдХреЙрд▓рдо рдХрд╛ рдирд╛рдо рдмрджрд▓реЗрдВред

рдореИрдВрдиреЗ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рдЦреНрддреА рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред рдпрд╣ рдПрдХ рд▓рд╛рдЗрдирд░ рдирд╣реАрдВ рд╣реИ, рдЧрд▓рддрд┐рдпрд╛рдБ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕реНрдерд╛рди рд╣реИрдВ, рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ рдЕрднреА рднреА рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдУрд╡рд░рд╣реЗрдб рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░рдХреЗ рд╕рдорд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ, рддреЛ рдореИрдВ рдХреЗрд╡рд▓ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдПрдХ рдорд╕реМрджрд╛ рд▓рд┐рдЦ тАЛтАЛрд╕рдХрддрд╛ рд╣реВрдВ, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рддрд┐рдпрд╛рдВ рд╣реИрдВ, рдФрд░ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП dtypes.

рд╕рд╛рде рд╣реА, рдХреЙрдкреА = рдЧрд▓рдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдлреНрд░реЗрдо рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ред рдореЗрд░рд╛ рдореБрдЦреНрдп рдмрд┐рдВрджреБ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдЕрдкрдиреЗ рддрд░реНрдХреЛрдВ рдХрд╛ рд╕рдореНрдорд╛рди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЙрд╕реЗ "рдХреБрдЫ рдЙрдЪрд┐рдд рдХрд░реЗрдВ" рдХреЗ рдмрдЬрд╛рдп рдлреЗрдВрдХ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣реА рд╣реИ, рдЕрдЧрд░ рдХреЙрдкреА = рдЧрд▓рдд рдХреЛ рд╕рдореНрдорд╛рдирд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЛ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкрддрд╛ рдЪрд▓реЗ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдпрд╛ рддреЛ рдЕрдиреНрдп рдЗрдирдкреБрдЯ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдХреЙрдкреА рдПрд▓рд┐рдЬрди рд╣реЛ рд╕рдХреЗ, рдпрд╛ рдЙрдиреНрд╣реЗрдВ рдХреЙрдкреА рдХреЛ рдЯреНрд░реВ рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред рдХреЙрдкреА = рдЧрд▓рдд рд╣реЛрдиреЗ рдкрд░ рдПрдХ рдХреЙрдкреА рдХрднреА рднреА рдЪреБрдкрдЪрд╛рдк рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдпрд╣ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдкреНрд░рддрд┐ рдЬрд╛рдЧрд░реВрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдмрдЧ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рдФрд░ рдХрдо рдЕрдиреБрдХреВрд▓ рд╣реИред

рдЖрдкрдХреЗ рдпрд╣рд╛рдБ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЪрд░рдг рд╣реИрдВ рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИрдВ
рдХреГрдкрдпрд╛ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рдПрдВ рдЬреИрд╕рд╛ рдореИрдВрдиреЗ рдКрдкрд░ рдХрд┐рдпрд╛ рдерд╛

рдЖрдк рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдиреБрдХреАрд▓рд╛ рджреГрд╢реНрдп рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рд░реАрд╢реЗрдкрд┐рдВрдЧ рдСрдкрд░реЗрд╢рдВрд╕ (рдХрднреА-рдХрднреА) рджреНрд╡рд╛рд░рд╛ рдПрдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЕрдиреНрдп рдирд╣реАрдВ

рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкрд░ рдХреЗрд╡рд▓ рдПрдХ рд╕реЙрдлреНрдЯ рдЧрд╛рд░рдВрдЯреА рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣реА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЧрд╛рд░рдВрдЯреА рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЖрддреНрдордирд┐рд░реАрдХреНрд╖рдг рдХреЗ рдмрд┐рдирд╛ рдЖрдорддреМрд░ рдкрд░ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рд░рд▓ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдкреНрд░рджрд░реНрд╢рди рдХреЛрдб рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЛ рд╣рд░рд╛ рджреЗрддрд╛ рд╣реИ

DataFrame рдирд┐рд░реНрдорд╛рдг рдореЗрдВ copy=False рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ numpy рдХреЗ np.array рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рд╕рд░рдгрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЕрдВрддрд┐рдо рдбреЗрдЯрд╛ рд╣рдореЗрд╢рд╛ рдПрдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдЧрд╛)ред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкрдВрдбреЛрдВ рдореЗрдВ рдПрдХ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рдлреАрдЪрд░ рдЧреИрдк рд╣реИред рдЖрдИрдПрдордПрдЪрдУ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╛рдВрдбрд╛ рдЗрдВрдЯрд░реНрдирд▓реНрд╕ (рдЬреЛ рдмреНрд▓реЙрдХ рдХреЛ рд╕рдореЗрдХрд┐рдд рдХрд░рддрд╛ рд╣реИ) рдХреЗ рдореМрдЬреВрджрд╛ рдореЙрдбрд▓ рдХреЗ рд╕рд╛рде рдХрднреА рднреА рд╕рдВрддреЛрд╖рдЬрдирдХ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд╛рдВрдбрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкрд╛рдВрдбрд╛ рдХреЛ рдЕрднреА рднреА рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдЬреЛ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХреЙрд▓рдо рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдмрдирд╛рддреЗ рд╣реИрдВред

рд╣рдореЗрдВ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕реБрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓рдо рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ 1D numpy arrays рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рд╣рдж рддрдХ xray рдореЗрдВ рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдХреЗ рд╕рдорд╛рди рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рд╣рдо рдХреЙрд▓рдо рдХреЛ рдПрди-рдЖрдпрд╛рдореА рд╕рд░рдгреА рд╣реЛрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди рдкрд╛рдВрдбрд╛ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдЬреЛ рдХреЗрд╡рд▓ рд╕реНрдерд╛рди рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд╡рд╣ рдЧреИрд░-рддреБрдЪреНрдЫ рд╣реИ рдЬрд┐рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдХреЙрд▓рдо рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рд╡рд┐рд╕реНрддреГрдд рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдРрд╕рд╛ рдХрд╣рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓реЗрдЦрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╕реАрдзреЗ рдЖрдЧреЗ рд▓рдЧрддрд╛ рд╣реИ рдЬреЛ рдкрд╛рдВрдбрд╛ рдбреЗрдЯрд╛рдлреНрд░реЗрдо рдХреЛ рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди рдбреЗрдЯрд╛ рдХрдВрдЯреЗрдирд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЖрд╡рдВрдЯрди-рдХреЗрд╡рд▓ рдбреЗрдЯрд╛рдлреНрд░реЗрдо рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдХреЙрд▓рдо рдкреНрд░рдХрд╛рд░реЛрдВ рддрдХ рд╕реАрдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдЦрдВрдб рдкреНрд░реЗрд░рдгрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЖрд╡рдВрдЯрди-рдХреЗрд╡рд▓, рдЧреИрд░-рднрд░реЗ рд╣реБрдП рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХреЛ рдЦрд╕реНрддрд╛ рдЧрддрд┐ рдХреЗ рдХрд░реАрдм рддреНрд╡рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреЛрдб рдХреЛ рдкреАрдЖрд░ # 9977 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

import numpy as np
from pandas.core.index import _ensure_index
from pandas.core.internals import BlockManager
from pandas.core.generic import NDFrame
from pandas.core.frame import DataFrame
from pandas.core.common import CategoricalDtype
from pandas.core.categorical import Categorical
from pandas.core.index import RangeIndex

def allocate_like(df, size, keep_categories=False):
    # define axes (uses PR #9977)
    axes = [df.columns.values.tolist(), RangeIndex(size)]

    # allocate and create blocks
    blocks = []
    for block in df._data.blocks:
        # special treatment for non-ordinary block types
        if isinstance(block.dtype, CategoricalDtype):
            if keep_categories:
                categories = block.values.categories
            else:
                categories = Index([])
            values = Categorical(values=np.empty(shape=block.values.shape,
                                                 dtype=block.values.codes.dtype),
                                 categories=categories,
                                 fastpath=True)
        # ordinary block types
        else:
            new_shape = (block.values.shape[0], size)
            values = np.empty(shape=new_shape, dtype=block.dtype)

        new_block = block.make_block_same_class(values=values,
                                                placement=block.mgr_locs.as_array)
        blocks.append(new_block)

    # create block manager
    mgr = BlockManager(blocks, axes)

    # create dataframe
    return DataFrame(mgr)

рдЙрджрд╛рд╣рд░рдг рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рд╕рд╛рде allocate_like() рдкреНрд░рджрд░реНрд╢рди рджрдВрдб cf numpy рдмрдбрд╝реЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ x2.3 (рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ x333) рдФрд░ рд╢реВрдиреНрдп-рдЖрдХрд╛рд░ рдХреЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП x3.3 (рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ x8.9) рд╣реИ:

In [2]: import numpy as np

In [3]: import pandas as pd

In [4]: a = np.empty(int(1e6), dtype=('i4,i4,f4,f4,f4'))

# create template-dataframe
In [5]: df = pd.DataFrame(a)

# large dataframe timings
In [6]: %timeit np.empty(int(1e6), dtype=('i4,i4,f4,f4,f4'))
1000 loops, best of 3: 212 ┬╡s per loop

In [7]: %timeit allocate_like(df, size=int(1e6))
1000 loops, best of 3: 496 ┬╡s per loop

In [8]: %timeit pd.DataFrame(np.empty(int(1e6), dtype=('i4,i4,f4,f4,f4')))
10 loops, best of 3: 70.6 ms per loop

# zero-size dataframe timing
In [9]: %timeit np.empty(0, dtype=('i4,i4,f4,f4,f4'))
10000 loops, best of 3: 108 ┬╡s per loop

In [10]: %timeit allocate_like(df, size=0)
1000 loops, best of 3: 360 ┬╡s per loop

In [11]: %timeit pd.DataFrame(np.empty(0, dtype=('i4,i4,f4,f4,f4')))
1000 loops, best of 3: 959 ┬╡s per loop

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВрдиреЗ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЯреНрд░реИрдХ рдЦреЛ рджрд┐рдпрд╛ред @ рдПрдЖрд░рдПрдл 1 , рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдирдореВрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдкреНрд░рджрд░реНрд╢рди рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ред

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдбреЗрдЯрд╛ рдХреЗ рдбреЗрдЯрд╛рдлреНрд░реЗрдо рдХреЗ рд▓реЗрдЖрдЙрдЯ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рд╡рд╛рд▓реА рдХрдХреНрд╖рд╛ рдмрдирд╛рдирд╛, рдХреЛрдб рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдкреНрд░рд╛рдХреГрддрд┐рдХ, рдФрд░ рд╢рд╛рдпрдж рдЕрдзрд┐рдХ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдб рдмрдирд╛ рджреЗрдЧрд╛ред рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдкреБрди: рдЕрдиреБрдХреНрд░рдордг рдХрд░рддреЗ рд╕рдордп рдЗрд╕ рд╡рд░реНрдЧ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЬреЛ рдореИрдВ рдореВрд▓ рд░реВрдк рд╕реЗ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рд╡рд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ: DataFrameLayout рдирд╛рдордХ рдПрдХ рд╡рд░реНрдЧ, рдЬреЛ dtypes, рдХреЙрд▓рдо рдирд╛рдо рдФрд░ рдХреЙрд▓рдо рдСрд░реНрдбрд░рд┐рдВрдЧ рдХреЛ рд▓рдкреЗрдЯрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ dtype рд╕реЗ рдХреЙрд▓рдо рдирдВрдмрд░ (рдСрд░реНрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП) рдФрд░ рд╕рднреА рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд▓рдЧ рдРрд░реЗ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рд▓реЗрдЖрдЙрдЯ рд╕реЗ, рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рддрд╛рдирд╛рд╢рд╛рд╣реА рдкрд░ рдПрдХ рд╕рд░рд▓, рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдмреНрд▓реЙрдХ рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдЗрд╕ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЦрд╛рд▓реА рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдЬреИрд╕реА рдЬрдЧрд╣реЛрдВ рдкрд░ рдпрд╛ рд░реАрдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рдСрдкрд░реЗрд╢рдВрд╕ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдРрд╕реЗ рд╕рд╛рд░ рддрддреНрд╡ рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред рдХреБрдЫ рдЕрд░реНрдереЛрдВ рдореЗрдВ, DataFrame рдПрдХ рд╕рдордЧреНрд░ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рд╣реИ, рдФрд░ DataFrameLayout рд╕рдВрд░рдЪрдирд╛ рдХреА рд╕рдЯреАрдХ рдкреНрд░рдХреГрддрд┐ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдЧрд╛ред

рд╡реИрд╕реЗ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдРрд╕рд╛ рд╣реА Categoricals рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ; рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рд╢реНрд░реЗрдгреАрдмрджреНрдз рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрдореВрд░реНрдд рд╣реЛрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬреЛ рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ, рдЪрд╛рд╣реЗ рдЙрдиреНрд╣реЗрдВ рдЖрджреЗрд╢ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ рдпрд╛ рдирд╣реАрдВ, рдмреИрдХрд┐рдВрдЧ рд╕рд░рдгреА рдкреНрд░рдХрд╛рд░, рдЖрджрд┐ред рдпрд╛рдиреА, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╕рдм рдХреБрдЫред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЬрдм рдЖрдк рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдорд▓реЗрдЖрдЙрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╕рднреА рд╕реНрддрдВрднреЛрдВ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╢реНрд░реЗрдгреАрдмрджреНрдзреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╣реИред

рд▓реЛрдЧ рдЗрди рджреЛ рд╡рд░реНрдЧреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВ?

@quicknir рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА CategoricalDtype рд╡рд░реНрдЧ рд╣реИ -- рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдЗрд╕реЗ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рдкреВрд░реНрдг CategoricalType рддрдХ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВ DataFrameLayout рд╡рд░реНрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВред рдореВрд▓ рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдбреЗрдЯрд╛ рдлреНрд░реЗрдо рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ, рд╕рд░рд▓ рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЕрдзрд┐рдХ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╡реЗ рдЖрд░ рдпрд╛ рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рдХреИрд╕реЗ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ)ред рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬрд╝реЛрдВ рдореЗрдВ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ рдФрд░ рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдВрддрддрдГ рдХрд┐рд╕реА рди рдХрд┐рд╕реА рд░реВрдк рдореЗрдВ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдЬрд▓реНрдж рд╣реА рдХрднреА рдирд╣реАрдВ (рдФрд░ рд╢рд╛рдпрдж рдкрд╛рдВрдбрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдХрднреА рдирд╣реАрдВ)ред

@quicknir рдпреЗ, DataFrameLayout рдпрд╣рд╛рдВ рдкрд╣рд┐рдпрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░ рд░рд╣рд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдпреБрдХреНрддрд┐ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП

In [14]: tm.makeMixedDataFrame().to_records().dtype
Out[14]: dtype([('index', '<i8'), ('A', '<f8'), ('B', '<f8'), ('C', 'O'), ('D', '<M8[ns]')])

@jreback рдпрд╣ рдкрд╣рд┐рдпрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ dtype spec рдореЗрдВ рдХрдИ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ:

1) рдЬрд╣рд╛рдБ рддрдХ рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдБ, to_records () рд╕рдВрдкреВрд░реНрдг рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХреА рдПрдХ рдЧрд╣рд░реА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХрд░реЗрдЧрд╛ред рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХреЗ рд▓рд┐рдП рдХрд▓реНрдкрдирд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ (рдореИрдВ рдЕрднреА рд╕реЗ рдЗрд╕ рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдБрдЧрд╛) рд╕рд╕реНрддрд╛ рдФрд░ рдЖрд╕рд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

2) to_records рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдПрдХ рд╕реБрдиреНрди рдкреНрд░рдХрд╛рд░ рд╣реИред рдЗрд╕рдХрд╛ рдПрдХ рдирд┐рд╣рд┐рддрд╛рд░реНрде рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рдЗрд╕реЗ рдХрднреА рднреА рд╢реНрд░реЗрдгреАрдмрджреНрдзреЛрдВ рдХрд╛ рдЙрдЪрд┐рдд рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

3) рдпреБрдХреНрддрд┐ рдХреЛ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдпрд╣ рд╡рд┐рдзрд┐ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рдХреЛ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХреЗ рдЕрдВрджрд░ рдХреИрд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЕрд░реНрдерд╛рдд рдЬреИрд╕реЗ dtype рдХреЗ рдмреНрд▓реЙрдХ рдореЗрдВ)ред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕реНрдкреЗрдХ рд╕реЗ рдмреНрд▓реЙрдХ рдмрдирд╛рдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рдо рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВрдиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдерд╛, рдЬреИрд╕реЗ рдХрд┐ рдбреАрдЯрд╛рдЗрдк рд╕реЗ рдХреЙрд▓рдо рдирдВрдмрд░реЛрдВ рддрдХ рдПрдХ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд╕рд╛рде рдХрд▓реНрдкрдирд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдХреЗ рд╕рдорд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ 2000 рдХреЙрд▓рдо рд╡рд╛рд▓рд╛ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рд╣реЛрдЧрд╛, рддреЛ рдпрд╣ рдорд╣рдВрдЧрд╛ рд╣реЛрдЧрд╛ред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рд░рд┐рдХреЙрд░реНрдб рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд╛ рдкреНрд░рдХрд╛рд░ рдПрдХ рдЙрдЪрд┐рдд рдпреБрдХреНрддрд┐ рдХреА рдХрдореА рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣рд▓ рд╣реИред рдЗрд╕рдореЗрдВ рдХрдИ рдкреНрд░рдореБрдЦ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЕрднрд╛рд╡ рд╣реИ рдФрд░ рдпрд╣ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рд╣рд╛рдЬ рд╕реЗ рдмрд╣реБрдд рдЦрд░рд╛рдм рд╣реИред

SO рдкрд░ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдкреВрдЫрдиреЗ рд╡рд╛рд▓реЗ рдХрдИ рд╕реВрддреНрд░ рд╣реИрдВред

рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпреЗ рд╕рднреА рд╕рдорд╕реНрдпрд╛рдПрдВ рдмреНрд▓реЙрдХрдореИрдиреЗрдЬрд░ рд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреЙрд▓рдо рдХреЛ рдПрдХ рдореЗрдореЛрд░реА рдЦрдВрдб ('рдмреНрд▓реЙрдХ') рдореЗрдВ рд╕рдореЗрдХрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИрдВред
рдХреЙрдкреА = рдЧрд▓рдд рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реЛрдиреЗ рдкрд░ рдбреЗрдЯрд╛ рдХреЛ рдмреНрд▓реЙрдХ рдореЗрдВ рд╕рдореЗрдХрд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЧреИрд░-рд╕рдореЗрдХрд┐рдд рдмрдВрджрд░-рдкреИрдЪ рдмреНрд▓реЙрдХрдореИрдиреЗрдЬрд░ рд╣реИ:
https://stackoverflow.com/questions/45943160/can-memmap-pandas-series-what-about-a-dataframe
рдХрд┐ рдореИрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рддрд╛ рдерд╛ред

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

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

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

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

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

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

amelio-vazquez-reina picture amelio-vazquez-reina  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ