рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдХреЙрд▓рдо рдирд╛рдо рдЕрд▓реНрдлрд╝рд╛рдиреНрдпреВрдореЗрд░рд┐рдХ рд░реВрдк рд╕реЗ рдХреНрд░рдордмрджреНрдз рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рдпрджрд┐ рдЙрдирдХреЗ рдмреАрдЪ рдХреЛрдИ рдЕрдВрддрд░ рд╣реЛред рдпрджрд┐ рд╡реЗ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдореЗрдВ рд╕рдорд╛рди рд╣реИрдВ, рддреЛ рд╡реЗ рдХреНрд░рдордмрджреНрдз рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред
рдпрд╣ рдкреНрд░рдХрд╛рд░ рдЕрдирд┐рд░реНрджрд┐рд╖реНрдЯ рдФрд░ рдЕрд╡рд╛рдВрдЫрд┐рдд рд╣реИред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдиреЛ-рд╕реЙрд░реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: SQL рдореЗрдВ рдорд╛рдирдХ рдХреНрд░рдо рд╣реЛрдЧрд╛: df1 рд╕реЗ рдХреЙрд▓рдо (df1 рдореЗрдВ рд╕рдорд╛рди рдХреНрд░рдо), df2 рд╕реЗ рдХреЙрд▓рдо (рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реВрдк рд╕реЗ) (рд╕рд╛рдорд╛рдиреНрдп рдХреЙрд▓рдо рдХрдо) (df2 рдореЗрдВ рд╕рдорд╛рди рдХреНрд░рдо)ред рдЙрджрд╛рд╣рд░рдг:
df4a = DataFrame(columns=['C','B','D','A'], data=np.random.randn(3,4))
df4b = DataFrame(columns=['C','B','D','A'], data=np.random.randn(3,4))
df5 = DataFrame(columns=['C','B','E','D','A'], data=np.random.randn(3,5))
print "Cols unsorted:", concat([df4a,df4b])
# Cols unsorted: C B D A
print "Cols sorted", concat([df4a,df5])
# Cols sorted A B C D E
``'
рдЗрд╕реЗ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рджреЗрдЦрддреЗ рд╣реБрдП рдореИрдВ _think_ рдпрд╣ Index.intersection рд╕реЗ рдЙрдкрдЬрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдбреЙрдХрд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╣рддрд╛ рд╣реИ:
рджреЛ рд╕реВрдЪрдХрд╛рдВрдХ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдкреНрд░рддрд┐рдЪреНрдЫреЗрджрди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВред рдкрд░рд┐рдгрд╛рдо рдХреА рдХреНрд░рдордмрджреНрдзрддрд╛ рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИ
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡реЗ рдХрд┐рди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ/рдХреНрд░рдордмрджреНрдз рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬрдм рдХреЙрд▓рдо рдмрд░рд╛рдмрд░ рд╣реЛрддреЗ рд╣реИрдВ (рдЖрдкрдХреЗ рдкрд╣рд▓реЗ рд╡рд╛рд▓реЗ рдореЗрдВ) рдЙрд╕реА рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХреЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ...
@smcierney рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЖрдк рдХрд┐рд╕ рдЖрджреЗрд╢ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░реЗрдВрдЧреЗ?
рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдСрдЯреЛ рд╕реЙрд░реНрдЯ рднреА рдереЛрдбрд╝рд╛ рдХрд╖реНрдЯрдкреНрд░рдж рдерд╛ (рдареАрдХ рд╣реИ, рдореБрдЭреЗ рдХрд╣рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ), рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдПрдХ рд▓реВрдк рдореЗрдВ рдПрдХ рдЦрд╛рд▓реА рдлреНрд░реЗрдо рдХреЗ рд▓рд┐рдП рдПрдХ рдлреНрд░реЗрдо рдХреЛ рд╕рдореЗрдЯрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛ (рдЬреИрд╕реЗ рдХрд┐рд╕реА рд╕реВрдЪреА рдореЗрдВ рдПрдХ рддрддреНрд╡ рдХреЛ рдЬреЛрдбрд╝рдирд╛)ред рддрдм рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдореЗрд░рд╛ рдХреЙрд▓рдо рдСрд░реНрдбрд░ рдмрджрд▓ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдЗрдВрдбреЗрдХреНрд╕ рдкрд░ рднреА рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ, рдпрджрд┐ рдЖрдк рдЕрдХреНрд╖ = 1 рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝ рд░рд╣реЗ рд╣реИрдВред
@smcinerney рдХреЗ рд╕рдорд╛рди рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ
рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдПрдХ "рд╣реИрдХ" рд▓рд┐рдЦрд╛ (рдереЛрдбрд╝реЗ рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рд╣рд╛рд▓рд╛рдВрдХрд┐)
рд╕реЙрд░реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ = pd.concat (рдлреНрд░реЗрдорд▓рд┐рд╕реНрдЯ, рдЕрдХреНрд╖ = рдЕрдХреНрд╖, рд╢рд╛рдорд┐рд▓ рд╣реЛрдВ = рд╢рд╛рдорд┐рд▓ рд╣реЛрдВ, join_axes = join_axes, рдЕрдирджреЗрдЦрд╛_рдЗрдВрдбреЗрдХреНрд╕ = рдЧрд▓рдд, рдХреБрдВрдЬрд┐рдпрд╛рдБ = рдХреЛрдИ рдирд╣реАрдВ, рд╕реНрддрд░ = рдХреЛрдИ рдирд╣реАрдВ, рдирд╛рдо = рдХреЛрдИ рдирд╣реАрдВ, рд╕рддреНрдпрд╛рдкрд┐рдд_рдЕрдЦрдВрдбрддрд╛ = рдЧрд▓рдд)
if join_axes:
return sorted
elif sort:
return sorted
else:
# expand all original orders in each frame
sourceOrder = []
for frame in frameList:
sourceOrder.extend(frame.Columns()) if axis == 0 else sourceOrder.extend(frame.Indices())
sortedOrder = sorted.Columns() if axis == 0 else sorted.Indices()
positions = []
positionsSorted = []
for i in sortedOrder:
positions.append(sourceOrder.index(i))
positionsSorted.append(sourceOrder.index(i))
positionsSorted.sort()
unsortedOrder = []
for i in positionsSorted:
unsortedOrder.append(sortedOrder[positions.index(i)])
return sorted.ReorderCols(unsortedOrder) if axis == 0 else sorted.ReorderRows(unsortedOrder)
рд╕рдорд╛рд░реЛрд╣ рдХреБрдВрдЧрдлреВ рдирд╛рдордХ рдореЗрд░реЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ! рдХреЛрдИ рднреА рдЙрдкрд░реЛрдХреНрдд рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХреЛ рдЕрдкрдирд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдореЗрд░реЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ https://github.com/jerryzhujian9/kungfu рдкрд░ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИ
рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдЗрд╕ рдорд╣рд╛рди рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдЯреАрдо рдХреЗ рдХрд╛рдо рдХреА рдмрд╣реБрдд рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВ!
рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдлреА рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╣реИ рдФрд░ рдореИрдВ рднреА рдЗрд╕ рдкрд░ рдареЛрдХрд░ рдЦрд╛рдИред
>>> df = pd.DataFrame()
>>> df['b'] = [1,2,3]
>>> df['c'] = [1,2,3]
>>> df['a'] = [1,2,3]
>>> print(df)
b c a
0 1 1 1
1 2 2 2
2 3 3 3
[3 rows x 3 columns]
>>> df2 = pd.DataFrame({'a':[4,5]})
>>> df3 = pd.concat([df, df2])
рднреЛрд▓реЗрдкрди рд╕реЗ рдХреЛрдИ рдЙрдореНрдореАрдж рдХрд░реЗрдЧрд╛ рдХрд┐ рд╕реНрддрдВрднреЛрдВ рдХрд╛ рдХреНрд░рдо рд╕рдВрд░рдХреНрд╖рд┐рдд рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдХреЙрд▓рдо рдХреНрд░рдордмрджреНрдз рд╣реИрдВ:
>>> print(df3)
a b c
0 1 1 1
1 2 2 2
2 3 3 3
0 4 NaN NaN
1 5 NaN NaN
[5 rows x 3 columns]
рдЗрд╕реЗ рдореВрд▓ рд╕реНрддрдВрднреЛрдВ рдХреЗ рд╕рд╛рде рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдкреБрди: рдЕрдиреБрдХреНрд░рдордгрд┐рдд рдХрд░рдХреЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
>>> df4 = df3.reindex_axis(df.columns, axis=1)
>>> print(df4)
b c a
0 1 1 1
1 2 2 2
2 3 3 3
0 NaN NaN 4
1 NaN NaN 5
[5 rows x 3 columns]
рдлрд┐рд░ рднреА рдпрд╣ рдкреНрд░рддрд┐-рд╕рд╣рдЬ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЫрдБрдЯрд╛рдИ рд╣реЛрддреА рд╣реИ рдФрд░ рдЬрд╣рд╛рдБ рддрдХ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдЗрд╕реЗ рдЕрдХреНрд╖рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдореИрдВ рдЕрднреА рдЗрд╕ рдкрд░ рднреА рдЖрдпрд╛ рд╣реВрдВред
new_data = pd.concat([churn_data, numerical_data])
рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд┐рдпрд╛:
churn Var1 Var10 Var100 Var101
0 -1 NaN NaN NaN NaN
1 -1 NaN NaN NaN NaN
рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХреЛ рдкрд╣рд▓реЗ рдХреНрд░рдордмрджреНрдз рдХрд┐рдП рдмрд┐рдирд╛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЕрдзрд┐рдХ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рдкреНрд░рддреАрдд рд╣реЛрдЧрд╛ !!
рдареАрдХ рд╣реИ, рдпрд╣ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рд╕рд╛ рдХрд╛рдо рд╣реИред рд▓реЗрдХрд┐рди рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд▓рд┐рдпрд╛!
рдмрд╕ рдЗрд╕реА рдореБрджреНрджреЗ рдкрд░ рдареЛрдХрд░ рдЦрд╛рдИ рдЬрдм рдореИрдВ DataFrames
рдХреЛ рдЬреЛрдбрд╝ рд░рд╣рд╛ рдерд╛ред рдпрджрд┐ рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдереЛрдбрд╝рд╛ рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рддреНрд╡рд░рд┐рдд рдЙрдкрд╛рдп рд╣реИ:
рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ dfs
рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ DataFrames
рдЖрдк CONCATENATE рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕рд┐рд░реНрдл рдореВрд▓ рд╕реНрддрдВрдн рдХреНрд░рдо рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдлрд╝реАрдб рдореЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
df = pd.concat(dfs, axis=0)
df = df[dfs[0].columns]
рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ append
рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ, FYI рдХрд░реЗрдВ
рдпрд╣ рдмреЛрд░реНрдб рднрд░ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдПрдХ рдлрд╝рдВрдХреНрд╢рди, f, рдХреЛ рдПрдХ groupby () рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХреЙрд▓рдо рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рддреЛ рджреГрд╢реНрдп рдХреЗ рдкреАрдЫреЗ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╕рдВрдпреЛрдЬрди рднреА рдХреЙрд▓рдо рдХреЛ рдСрдЯреЛ-рд╕реЙрд░реНрдЯ рдХрд░рддрд╛ рд╣реИред
df.groupby(some_ts).apply(f)
рд╢рд╛рдпрдж рдЗрд╕рд▓рд┐рдП рдХрд┐ рд╕реНрддрдВрднреЛрдВ рдХрд╛ рдЬреНрдЮрд╛рдд рдХреНрд░рдо рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдЦреБрд▓рд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдорд▓реНрдЯреАрдЗрдВрдбрд┐рд╕реЗрд╕ рдФрд░ рдорд▓реНрдЯреАрдЗрдВрдбрд┐рд╕реЗрд╕ рдореЗрдВ рд╕рднреА рдкрджрд╛рдиреБрдХреНрд░рдореЛрдВ рдХреЗ рд▓рд┐рдП рднреА рд╣реЛрддрд╛ рд╣реИред рддреЛ рдЖрдк рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХреЛ рд╕рдорддрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕реНрддрд░ 0 рдХреЙрд▓рдо рдФрд░ рд╕рднреА рдмрд╛рд░ рдПрдХ рд╕реНрддрд░ 1 рдХреЙрд▓рдо рдкрд░ рд╕рд╣рдордд рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдорд▓реНрдЯреАрдЗрдВрдбрд┐рд╕ рдХреЗ рд╕рднреА рд╕реНрддрд░реЛрдВ рдХреЛ рдПрдХ рд╕реНрддрд░ 0 рдХреЙрд▓рдо рдХреЗ рднреАрддрд░ рдПрдХ рдмреЗрдореЗрд▓ рдХреЗ рдХрд╛рд░рдг рд╕реНрд╡рдд: рдХреНрд░рдордмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рд╡рд╛рдВрдЫрдиреАрдп рд╣реИред
рдореБрдЭреЗ рдорджрдж рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛, рд▓реЗрдХрд┐рди рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдореЗрд░реА рдХреНрд╖рдорддрд╛ рд╕реЗ рдкрд░реЗ рд╣реИред рд╕рднреА рдХреА рдХрдбрд╝реА рдореЗрд╣рдирдд рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП +1
рд╕рд╣рдордд, +1ред рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдЫрдБрдЯрд╛рдИ рдореЗрд░реЗ рд▓рд┐рдП рд╣рд░ рд╕рдордп рд╣реЛрддреА рд╣реИред
+1, рдпрд╣ рдПрдХ рдЕрдкреНрд░рд┐рдп рдЖрд╢реНрдЪрд░реНрдп рдерд╛!
+1, рдореБрдЭреЗ рдкреНрд░рддреНрдпреЗрдХ append
рдмрд╛рдж рдХреЙрд▓рдо рд╕реЙрд░реНрдЯ рдХрд░рдиреЗ рд╕реЗ рдирдлрд░рдд рд╣реИред
рдореЗрд░реА рддрд░рдл рд╕реЗ рднреА +1ред
рдХреНрдпреЛрдВрдХрд┐ рднрд▓реЗ рд╣реА рдореИрдВ рдПрдХ рдХреЙрдиреНрд╕реИрдЯ рдХреЗ рдмрд╛рдж рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдлрд┐рд░ рд╕реЗ рдСрд░реНрдбрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЬрдм рдореИрдВ рдЕрдкрдиреЗ рдбреЗрдЯрд╛рдлреНрд░реЗрдо рдореЗрдВ 60 + рдХреЙрд▓рдо рдирд╛рдо рдФрд░ рдкрджреЛрдВ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ:
for id, value in enumerate(df.columns):
print id, value
рд╕рднреА 60+ рдХреЙрд▓рдо рд╡рд░реНрдгрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рд╣реЛрддреЗ рд╣реИрдВ, рдбреЗрдЯрд╛ рдлреНрд░реЗрдо рдореЗрдВ рдЙрдирдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВред
рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХрднреА рднреА рд╕рдорд╡рд░реНрддреА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ 60 рд╕реНрддрдВрднреЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ рдлрд┐рд░ рд╕реЗ рдХреНрд░рдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдк рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЖрдЙрдЪред
рдЬрдмрдХрд┐ рдореИрдВ рдпрд╣рд╛рдВ рд╣реВрдВ, рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдХреЙрд▓рдо рдирд╛рдо рдФрд░ рд╕реНрдерд┐рддрд┐ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рдпрд╛рдж рдЖ рд░рд╣реА рд╣реИ?
рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП +1, рдмрд╕ рдЙрд╕реА рд╕реМрджреЗ рдореЗрдВ рдЦреБрдж рднрд╛рдЧ рдЧрдпрд╛ред
@summerela рдХреЙрд▓рдо рдЗрдВрдбреЗрдХреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рдореВрд▓ рдХреЙрд▓рдо рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдирдП
# assuming you have two dataframes, `df_train` & `df_test` (with the same columns)
# that you want to concatenate
# get the columns from one of them
all_columns = df_train.columns
# concatenate them
df_concat = pd.concat([df_train,
df_test])
# finally, re-index the new dataframe using the original column index
df_concat = df_concat.ix[:, all_columns]
рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрджрд┐ рдЖрдкрдХреЛ рд╕реНрддрдВрднреЛрдВ рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рдЙрдкрд╕рдореБрдЪреНрдЪрдп рдХреЛ рдкреБрди: рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╕рд╛рдкреЗрдХреНрд╖ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдХреЙрд▓рдо рдХреЛ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХреЗ рдЕрдВрдд рдореЗрдВ рд▓реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдкреВрд░реНрд╡ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЪрд░рдгреЛрдВ рдХреЗ рдмрд╛рдж рдХрд┐рддрдиреЗ рдХреЙрд▓рдо рд░рд╣ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рд╢реВрдиреНрдп-рднрд┐рдиреНрдирддрд╛ рд╡рд╛рд▓реЗ рдХреЙрд▓рдо рдЫреЛрдбрд╝ рд░рд╣реЗ рд╣реИрдВ), рдЖрдк рдПрдХ рд╕рд╛рдкреЗрдХреНрд╖ рд╕реВрдЪрдХрд╛рдВрдХ рд╕реНрдерд┐рддрд┐ рдХреЛ new_indices
-> new_indices = [-1]
рдФрд░ рдпрд╣ рдмрд╛рдХреА рдХрд╛ рдЦреНрдпрд╛рд▓ рд░рдЦреЗрдЧрд╛ред
def reindex_columns(dframe=None, columns=None, new_indices=None):
"""
Reorders the columns of a dataframe as specified by
`reorder_indices`. Values of `columns` should align with their
respective values in `new_indices`.
`dframe`: pandas dataframe.
`columns`: list,pandas.core.index.Index, or numpy array; columns to
reindex.
`reorder_indices`: list of integers or numpy array; indices
corresponding to where each column should be inserted during
re-indexing.
"""
print("Re-indexing columns.")
try:
df = dframe.copy()
# ensure parameters are of correct type and length
assert isinstance(columns, (pd.core.index.Index,
list,
np.array)),\
"`columns` must be of type `pandas.core.index.Index` or `list`"
assert isinstance(new_indices,
list),\
"`reorder_indices` must be of type `list`"
assert len(columns) == len(new_indices),\
"Length of `columns` and `reorder_indices` must be equal"
# check for negative values in `new_indices`
if any(idx < 0 for idx in new_indices):
# get a list of the negative values
negatives = [value for value
in new_indices
if value < 0]
# find the index location for each negative value in
# `new_indices`
negative_idx_locations = [new_indices.index(negative)
for negative in negatives]
# zip the lists
negative_zipped = list(zip(negative_idx_locations,
negatives))
# replace the negatives in `new_indices` with their
# absolute position in the index
for idx, negative in negative_zipped:
new_indices[idx] = df.columns.get_loc(df.columns[
negative])
# re-order the index now
# get all columns
all_columns = df.columns
# drop the columns that need to be re-indexed
all_columns = all_columns.drop(columns)
# now re-insert them at the specified locations
zipped_columns = list(zip(new_indices,
columns))
for idx, column in zipped_columns:
all_columns = all_columns.insert(idx,
column)
# re-index the dataframe
df = df.ix[:, all_columns]
print("Successfully re-indexed dataframe.")
except Exception as e:
print(e)
print("Could not re-index columns. Something went wrong.")
return df
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдЙрдкрдпреЛрдЧ рдирд┐рдореНрди рдХреА рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
# move 'Column_1' to the end, move 'Column_2' to the beginning
df = reindex_columns(dframe=df,
columns=['Column_1', 'Column_2'],
new_indices=[-1, 0])
рдореБрдЭреЗ рдЗрд╕рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ (0.13.1 рдХреЗ рд╕рд╛рде) рдПрдХ рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЗ рд╕реЗ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдкреНрд░рддреНрдпреЗрдХ рдЕрджреНрд╡рд┐рддреАрдп рдХреЙрд▓рдо рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛рдлреНрд░реЗрдо рдХрд╛ рд╕рдВрдпреЛрдЬрдиред рд╕реНрддрдВрдн рдирд╛рдореЛрдВ рдХрд╛ рдПрдХ рд╕рд░рд▓ рдкреБрди: рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛:
dat = pd.concat([out_dust, in_dust, in_air, out_air])
dat.columns = [out_dust.columns + in_dust.columns + in_air.columns + out_air.columns]
рдХреЙрд▓рдо рдЕрднреА рднреА рдХреНрд░рдордмрджреНрдз рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рд╕реВрдЪрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдордзреНрдпрд╡рд░реНрддреА рд░реВрдк рд╕реЗ рд╣рд▓ рдХреА рдЧрдИ рдЪреАрдЬреЗрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐:
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдореИрдВрдиреЗ рдмрд╣реБрдд рдЬрд▓реНрджреА рдмрд╛рдд рдХреА ..
рдЕрдиреБрд╡рд░реНрддреА: fwiw, рд╕реНрддрдВрдн рдХреНрд░рдо рдХреЛ рдПрдХрд╡рдЪрди рд╡рд╕реНрддреБрдУрдВ рдкрд░ рдЬрдВрдЬреАрд░ .join
рдХреЙрд▓ рдХреЗ рд╕рд╛рде рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
df1.join([df2, df3]) # sorts columns
df1.join(df2).join(df3) # column order retained
рдХреЙрд▓рдо рдСрд░реНрдбрд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдмрдирд╛рддреЗ рд╕рдордп рдХреЛрдИ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рдЖрджреЗрд╢ рдХреА рддрд░рд╣ = рдЭреВрдард╛ред рдмрд╣реБрдд - рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж
рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рд╕реЗ рдбреЗрдЯрд╛рдлреНрд░реЗрдо рдмрдирд╛рддреЗ рд╕рдордп рдмрд╕ рдЗрд╕рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред рдореБрдЭреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдХрд░ рджрд┐рдпрд╛, рдкреНрд░рддрд┐рд╡рд╛рдж рдХрд┐рдпрд╛ рдФрд░ рдореЗрд░реЗ рдкреВрд░реЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЛ рд╣рд░рд╛ рджрд┐рдпрд╛ ...
рдХреЙрд▓рдо рдирд╛рдо рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП рдФрд░ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдкрд╛рд╕ рдХреЙрд▓рдо рдХрд╛ рд╕реНрдерд╛рди рд╕реБрд╕рдВрдЧрддрддрд╛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдПрдХ рд╕рдВрдЧрдардирд╛рддреНрдордХ рдкрд╕рдВрдж рд╣реИ
@patricktokeeffe
рд╕реВрдЪрдХ рдХреЗ рд▓рд┐рдП join
рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рд╡рд╣ рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реИ рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛:
def concat_fixed(ndframe_seq, **kwargs):
"""Like pd.concat but fixes the ordering problem.
Converts Series objects to DataFrames to access join method
Use kwargs to pass through to repeated join method
"""
indframe_seq = iter(ndframe_seq)
# Use the first ndframe object as the base for the final
final_df = pd.DataFrame(next(indframe_seq))
for dataframe in indframe_seq:
if isinstance(dataframe, pd.Series):
dataframe = pd.DataFrame(dataframe)
# Iteratively build final table
final_df = final_df.join(dataframe, **kwargs)
return final_df
рдЗрд╕ рдкрд░ рджрдХреНрд╖рддрд╛ рдХреИрд╕реА рд╣реИ?
рдмреБрдзрд╡рд╛рд░, 30 рдЕрдЧрд╕реНрдд, 2017 рджреЛрдкрд╣рд░ 1:58 рдмрдЬреЗ, рдмреНрд░рд╛рдЗрд╕ рдЧреБрдВрдЯрд╛ рд╕реВрдЪрдирд╛рдПрдВ @github.com
рд▓рд┐рдЦрд╛ рдерд╛:
@patricktokeeffe https://github.com/patricktokeeffe
рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реВрдЪрдХ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рд╡рд╣ рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ
рдореИрдВрдиреЗ рдПрдХ рд╕рдорд╛рд░реЛрд╣ рд▓рд┐рдЦрдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛:def concat_fixed (ndframe_seq, **kwargs):
"""pd.concat рдХреА рддрд░рд╣ рд▓реЗрдХрд┐рди рдЖрджреЗрд╢ рджреЗрдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИредConverts Series objects to DataFrames to access join method Use kwargs to pass through to repeated join method """ indframe_seq = iter(ndframe_seq) # Use the first ndframe object as the base for the final final_df = pd.DataFrame(next(indframe_seq)) for dataframe in indframe_seq: if isinstance(dataframe, pd.Series): # Convert Series objects into DataFrames since # series objects do not have a join method dataframe = pd.DataFrame(dataframe) # Iteratively build final table final_df = final_df.join(dataframe, **kwargs) return final_df
-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рдереАред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/pandas-dev/pandas/issues/4588#issuecomment-326086636 ,
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AG999MucF-NH5vHuKe-Zczq-jy9ziYkRks5sdbDogaJpZM4A6TeA
.
@рдорд╛рдЗрдХрдЯреИрдо1021
рдореИрдВ рдЗрд╕реЗ рдПрдЯреАрдПрдо рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдирд╣реАрдВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рдПрдирдбреАрдлреНрд░реЗрдо рдХреЗ рдЖрдХрд╛рд░, рдЙрдирдХреА рдорд╛рддреНрд░рд╛ рдХрд╛ рдПрдХ рдХрд╛рд░реНрдп рд╣реЛрдЧрд╛ред рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ ndframe рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдмрдирд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ pd.concat
рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдХрдо рдХреБрд╢рд▓ рд╣реИред
рдпрд╣ рдореЗрд░реА рдкреНрд░рдпреЛрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдХреА рдПрдХ рдЫреЛрдЯреА рд░рд╛рд╢рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ ndframes
(1 рд▓рдЧрднрдЧ 10) рдФрд░ рдХреЗ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЫреЛрдЯреА рд░рд╛рд╢рд┐ records
рдкреНрд░рддреНрдпреЗрдХ ndframe (2 рдЪрд╛рд░реЛрдВ рдУрд░ 10) рдХреЗ рд▓рд┐рдПред
рдореЗрд░рд╛ рд▓рдХреНрд╖реНрдп рдЙрди рдЕрднрд┐рд▓реЗрдЦреЛрдВ рдХреЗ рдХреНрд░рдо рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рддреЗ рд╣реБрдП рдкреНрд░рддреНрдпреЗрдХ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рд╕реЗ рд╕рднреА рд░рд┐рдХреЙрд░реНрдб рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╣реИ, рднрд▓реЗ рд╣реА рд╕рднреА ndframes рдореЗрдВ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рди рд╣реЛред
рдореИрдВ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ рдХрд┐ рдХреЙрд▓рдо рдСрд░реНрдбрд░ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдирд╛ (рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ) рдХреЙрдиреНрд╕реИрдЯ() рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рд╣реИред
рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди unique_everseen
Itertools Recipes рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
columns = unique_everseen([column for df in dfs for column in df.columns])
df = pd.concat(dfs)[columns]
рдЗрд╕ рдереНрд░реЗрдб рдХреА рд╕реНрдерд┐рддрд┐ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ? рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг 0.22.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЕрднреА рднреА рдХреЛрдИ рдЙрдЪрд┐рдд рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред рд╡рд┐рд▓рдВрдм рдпрд╣рд╛рдБ рдХрд╛рдлреА рдПрдХ рдореБрджреНрджрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ ...
рдореИрдВ рдпрд╣ рднреА рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЙрд▓рдо рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╕рдордп рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛рдиреА axis=1
, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдореЗрдВ рдбреЗрдЯрд╛рдлреНрд░реЗрдо рдкрд╛рд╕ рдХрд░рддреЗ рд╕рдордп:
>>> df4a = DataFrame(columns=['C','B','D','A'], data=np.random.randn(3,4))
>>> df4b = DataFrame(columns=['C','B','D','A'], data=np.random.randn(3,4))
>>> df5 = DataFrame(columns=['C','B','E','D','A'], data=np.random.randn(3, 5))
>>> pd.concat([df4a, df5], axis=1).columns
Index(['C', 'B', 'D', 'A', 'C', 'B', 'E', 'D', 'A'], dtype='object')
>>> pd.concat({'df4a': df4a, 'df4b': df4b}, axis=1).columns.levels
FrozenList([['df4a', 'df4b'], ['C', 'B', 'D', 'A']])
>>> pd.concat({'df4a': df4a, 'df5': df5}, axis=1).columns.levels
FrozenList([['df4a', 'df5'], ['A', 'B', 'C', 'D', 'E']])
рдЗрд╕ рдереНрд░реЗрдб рдХреА рд╕реНрдерд┐рддрд┐ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ?
рдЕрднреА рднреА рдЦреБрд▓рд╛ред
рд╡рд┐рд▓рдВрдм рдпрд╣рд╛рдБ рдХрд╛рдлреА рдПрдХ рдореБрджреНрджрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ ...
рдЯрд╛рд▓рдордЯреЛрд▓? рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЦреБрд▓реЗ рдореБрджреНрджреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдареАрдХ рд╣реЛ рдЬрд╛рдП рддреЛ рдЖрдк рдПрдХ рдкреАрдЖрд░ рдХреЛ рдПрдХ рд╕рд╛рде рд░рдЦрдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╢рд░реНрдд рд╣реИред рдЕрдЧрд░ рдЖрдкрдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдЪрд╛рд╣рд┐рдП рддреЛ рд╣рдореЗрдВ рдмрддрд╛рдПрдВред
@jtratner : рдпрджрд┐ рдпрд╣ рд╢реАрд░реНрд╖ рдкрд░ рдореЗрд░реЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдерд╛, рддреЛ рдореИрдВ рдЖрджреЗрд╢ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реВрдВ:
рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЕрдиреНрдп рдкреИрдХреЗрдЬреЛрдВ рдпрд╛ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ, рдЬреИрд╕реЗ SQLред рдЕрд╡рд╛рдВрдЫрд┐рдд рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреНрд░рдХрд╛рд░ рдХрднреА рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЙрд▓рдо рдирд╛рдореЛрдВ рдХреЛ рд╕реЙрд░реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдРрд╕рд╛ рдХрд░рдиреЗ рджреЗрдВред
рд╣реЗ рджреЛрд╕реНрддреЛрдВ, 2 рдЪреАрдЬреЗрдВред 1) рдкрд╛рдВрдбрд╛ рдореЗрдВ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ! рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдЬреИрд╕реЗ рдЕрдзрд┐рдХ рдЕрдЬрдЧрд░ рджреЗрд╢реА рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЕрдЬрдЧрд░ (рдпрд╛ рдХрд┐рд╕реА рднреА рднрд╛рд╖рд╛) рдХреЛ SQL рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдмрдВрдж рдХрд░реЗрдВред 2) рдпрд╣ рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдПрдХ рдмрдЧ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдХреЛрдб рдХрд╛ рд╕рд┐рд░реНрдл рдПрдХ рдЕрд╡рд╛рдВрдЫрд┐рдд рдкреНрд░рднрд╛рд╡ рд╣реИред рдЖрдк рдкреИрдХреЗрдЬ рдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рдмрд╛рд╣рд░ рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рджреВрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣реА рд╕рд╣реА рдЙрддреНрддрд░ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдпрд╣рд╛рдВ рдХреЛрдИ рдЗрд╕реЗ рдЕрдкрдиреЗ рдКрдкрд░ рдирд╣реАрдВ рд▓реЗрддрд╛ред
@ рдорд╛рдЗрдХрдЯреИрдо 1021 рдХреГрдкрдпрд╛ рдмрддрд╛рдПрдВ рдХрд┐ рдкреИрдХреЗрдЬ рдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рдмрд╛рд╣рд░ рдЗрд╕реЗ рдХреИрд╕реЗ рджреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдзрдиреНрдпрд╡рд╛рджред
рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдЗрд╕ рд╕реВрддреНрд░ рдореЗрдВ рд▓реЛрдЧ рдареАрдХ рдпрд╣реА рдЪрд░реНрдЪрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореИрдВ рдКрдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрдЪреНрдЫреЗ рд╕рдорд╛рдзрд╛рди рджреЗрдЦрддрд╛ рд╣реВрдВ рдЬреЛ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
@ рдорд╛рдЗрдХрдЯреИрдо 1021 рдпрд╣ рдкрд╛рдВрдбрд╛ рдХреЛ рдПрд╕рдХреНрдпреВрдПрд▓ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ (рд╕реНрд╡рд░реНрдЧ рди рдХрд░реЗ!), рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕рд╕реЗ рдЕрдзрд┐рдХ рд╕рд╣рдордд рдирд╣реАрдВ рд╣реЛ рд╕рдХрд╛:
рдЕрд╡рд╛рдВрдЫрд┐рдд рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреНрд░рдХрд╛рд░ рдХрднреА рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЙрд▓рдо рдирд╛рдореЛрдВ рдХреЛ рд╕реЙрд░реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдРрд╕рд╛ рдХрд░рдиреЗ рджреЗрдВред
рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХреЛ рдЬреЛрдбрд╝рдирд╛ "рдЙрдиреНрд╣реЗрдВ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рд▓рд┐рдЦрдирд╛" рдЬреИрд╕рд╛ рд╣реА рдкреНрд░рднрд╛рд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдпрд╣ рдирд┐рд╣рд┐рдд рдкреНрд░рдХрд╛рд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрдо рд╕реЗ рдХрдо рд╡рд┐рд╕реНрдордп рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рддрд╛ рд╣реИред
рдореИрдВ рд╕рд╣рдордд рд╣реВрдБред рдпрд╣ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдХреЙрд▓рдо рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрджреЗрд╢ рднреА рдорд╛рдирддрд╛ рд╣реИ, рдЬреЛ SQLish рд╣реИ, рди рдХрд┐ рд╢реБрджреНрдз рдХрдВрдкреНрдпреВрдЯрд░ рд╡рд┐рдЬреНрдЮрд╛рдиред рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЖрдк рдбреЗрдЯрд╛ рдХрд╣рд╛рдВ рд╣реИрдВред
рдпрд╣ рдФрд░ рдХрдИ рдЕрдиреНрдп рдореБрджреНрджреЛрдВ рдХреА рдЦреЛрдЬ рдХреЗ рдмрд╛рдж рдореИрдВ рд╢рд╛рдпрдж рд╣реА рдЕрдм рдкрд╛рдВрдбрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдЗрд╕рдиреЗ рдореБрдЭреЗ рдПрдХ рдмреЗрд╣рддрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдмрдирд╛рдпрд╛ рд╣реИред
рдЗрд╕ рдкрд░ +1
рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
cols = list(df1)+list(df2)
df1 = pd.concat([df1, df2])
df1 = df1.loc[:, cols]
рдореБрдЭреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрддрд┐рдпрд╛ рдмрдирдирд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреИрдЪ рдХреИрд╕реЗ рд▓реБрдврд╝рдХрд╛ рд╣реИред рдЖрдкрдиреЗ рдПрдХ рд╕рд╛рде concat
рдХреЗ рдлрд╝рдВрдХреНрд╢рди рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдкреЗрд╢ рдХреА рд╣реИред рд╕рднреА рдПрдХ рд╣реА рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдХреЗ рднреАрддрд░ред
рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдХрдИ рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ рдкрд╛рдВрдбрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗ рдХрд┐ рд╕рднреА рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рдкрд╛рд╕ рд╣рд░ рд╕рдордп рдкрд╛рдВрдбрд╛ рдХрд╛ рдПрдХ рд╣реА рд╕рдВрд╕реНрдХрд░рдг рд╣реИред рддреЛ рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдо рддрдХрдиреАрдХреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИрдВ рдЬреЛ рдЙрди рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рд╕реЗ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдВ рджреЗрдЦрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЙрдиреНрд╣реЛрдВрдиреЗ рдкрд╣рд▓реЗ рдХрднреА рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ, рдФрд░ рдЕрдирд┐рд╢реНрдЪрд┐рдд рд╣реИрдВ рдХрд┐ рдЪреЗрддрд╛рд╡рдиреА рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдВрдХреЗрдд рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдореИрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд╣рдЪрд╛рди рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЪреЗрддрд╛рд╡рдиреА рдХрд╣рд╛рдВ рд╕реЗ рдЖ рд░рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╕реБрдЭрд╛рдП рдЧрдП рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдирд╣реАрдВ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрд╛рдВрдбрд╛ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рд╕рд░реНрд╡рд░ рдкрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рддреЛрдбрд╝ рджреЗрдЧрд╛ред
рдпрд╣ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рдпрджрд┐ рдЖрдк рдЫрдБрдЯрд╛рдИ рдХреНрд╖рдорддрд╛ 0.23 рдкрд░ рд░рдЦрддреЗ, рдФрд░ рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рдХреБрдЫ рдмрд╛рдж рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЬреЛрдбрд╝рддреЗред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рджрд░реНрдж рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдорд╛рди рд▓реЗрдирд╛ рдЕрдкреНрд░рд┐рдп рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рддреБрд░рдВрдд рд╕рднреА рддреИрдирд╛рддреА рдХреЛ рдирд╡реАрдирддрдо рдХреЛрдб рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕ рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдлрд╝рд┐рд▓реНрдЯрд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░
рдбреНрд░реЙрдк рдХрд░реЗрдВ рдХрд┐ рдЬрдм рд╕рднреА рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд░реВрдк рд╕реЗ, рдпрд╣ рд╡рд╣реА рд╕рд╣реА рд╣реИ?
рдЧреБрд░реБ, 4 рдЕрдХреНрдЯреВрдмрд░, 2018 рдХреЛ рд╕реБрдмрд╣ 9:18 рдмрдЬреЗ рдбреЗрд╡рд┐рдбрдПрд╕реНрдХреЙрдЯ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:
рдореБрдЭреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрддрд┐рдпрд╛ рдмрдирдирд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреИрдЪ рдХреИрд╕реЗ рд▓реБрдврд╝рдХрд╛ рд╣реИред рдЖрдкрдХреЗ рдкрд╛рд╕
рд╕рд╛рде рд╣реА рд╕рд╛рде рдХреЙрдирдХреИрдЯ рдХреЗ рдлрдВрдХреНрд╢рди рд╕рд┐рдЧреНрдиреЗрдЪрд░ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдФрд░ рдкреЗрд╢ рдХрд┐рдпрд╛ a
рдЙрдкрдпреЛрдЧ рдХреА рдЪреЗрддрд╛рд╡рдиреА рджреАред рд╕рднреА рдПрдХ рд╣реА рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдХреЗ рднреАрддрд░редрдЗрд╕рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдХрдИ рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ рдкрд╛рдВрдбрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ
рдЧрд╛рд░рдВрдЯреА рджреЗрдВ рдХрд┐ рд╕рднреА рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рдкрд╛рд╕ рдкрд╛рдВрдбрд╛ рдХрд╛ рдмрд┐рд▓реНрдХреБрд▓ рд╕рдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рд╣реИ
рдмрд╛рд░ред рдЗрд╕рд▓рд┐рдП рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдо рддрдХрдиреАрдХреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИрдВ рдЬреЛ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рд╕реЗ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдВ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ
рдЙрдиреНрд╣реЛрдВрдиреЗ рдкрд╣рд▓реЗ рдХрднреА рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ, рдФрд░ рдЕрдирд┐рд╢реНрдЪрд┐рдд рд╣реИрдВ рдЕрдЧрд░ рдЪреЗрддрд╛рд╡рдиреА рдХрд╛ рд╕рдВрдХреЗрдд рд╣реИ
рдПрдХ рд╕рдорд╕реНрдпрд╛редрдореИрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд╣рдЪрд╛рди рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЪреЗрддрд╛рд╡рдиреА рдХрд╣рд╛рдВ рд╕реЗ рдЖ рд░рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдирд╣реАрдВ рдЬреЛрдбрд╝ рд╕рдХрддрд╛
рд╕реБрдЭрд╛рдП рдЧрдП рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрд┐рд╕реА рднреА рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рддреЛрдбрд╝ рджреЗрдЧрд╛
рдкрдВрдбреЛрдВ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╕рд░реНрд╡рд░редрдпрджрд┐ рдЖрдк рдЫрдБрдЯрд╛рдИ рдХреНрд╖рдорддрд╛ рдХреЛ рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛
0.23, рдФрд░ рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рдХреБрдЫ рдмрд╛рдж рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЬреЛрдбрд╝рд╛ред рдореБрдЭреЗ рдЗрд╕рдХрд╛ рджрд░реНрдж рдкрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди
рдпрд╣ рдорд╛рди рд▓реЗрдирд╛ рдЕрдкреНрд░рд┐рдп рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рддреБрд░рдВрдд рд╕рднреА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдирд╡реАрдирддрдо рдХреЛрдб рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдирд┐рдпреЛрдЬрдиред-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЦреБрд▓реА/рдмрдВрдж рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/pandas-dev/pandas/issues/4588#issuecomment-427036391 ,
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/ABQHItEhYfv5kqB-R-pDX4zyIh45hF7kks5uhhiWgaJpZM4A6TeA
.
@TomAugspurger рдРрд╕реЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ рдЬрд┐рдирд╕реЗ рд╣рдо рдЕрдкрдиреА рддрд░рдл рд╕реЗ рдЗрд╕рд╕реЗ рдирд┐рдкрдЯ рд╕рдХрддреЗ рд╣реИрдВред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдирд╛ рдПрдХ рд╣реИред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЗ рдпрд╛рдВрддреНрд░рд┐рдХреА рдлрд┐рд▓реНрдЯрд░ рдереЛрдбрд╝реЗ рдмрджрд╕реВрд░рдд рд╣реИрдВ ...
FutureWarning
рджреНрд╡рд╛рд░рд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдлрд┐рд░ рдореБрдЭреЗ рдкрд╛рдВрдбрд╛ рд╕реЗ рдХреЛрдИ рдЪреЗрддрд╛рд╡рдиреА рдирд╣реАрдВ рдорд┐рд▓реЗрдЧреА рдФрд░ рдЕрдиреНрдп рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рд╕реЗ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рд╣реЛрдЧрд╛,рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ warnings
рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдХрдорд┐рдпрд╛рдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреБрдЫ рдирд╣реАрдВ рд╣реИрдВ рдЬреЛ рдореИрдВ рдкрд╛рдВрдбрд╛ рдЯреАрдо рдХреЗ рдкреИрд░ рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддрд╛ рд╣реВрдВред
рди рд╣реА рдпрд╣ рдЖрдкрдХреА рдЧрд▓рддреА рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдкреБрд░рд╛рдирд╛ рд╕рд░реНрд╡рд░ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдкрдЧреНрд░реЗрдб рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рджреВрд╕рд░реА рдЪреАрдЬ рд╣реЛрдЧреА рдЬреЛ рдореИрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ (рдмрд╕ рд╕рднреА рд▓рд╛рдирдд рддреИрдирд╛рддреА рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░реЗрдВ)ред рдЕрдВрддрдд:, рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдореБрдЭреЗ рдпрд╣ рдХрд░рдирд╛ рд╣реИ рдФрд░ рдпрд╣ рдореЗрд░реА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╣реИ рдХрд┐ рд╣рдо рдЕрдкрдиреА рддреИрдирд╛рддреА рдХреЛ рдПрдХ рд╕рд╛рде рд░рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рд╡рд┐рдЪрд┐рддреНрд░ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рджреГрд╢реНрдп рдЕрдВрдд рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рдмрджрд▓рд╛рд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЗрддрдиреЗ рдЪрд┐рдВрддрд┐рдд рдереЗ рдХрд┐ рдЖрдкрдиреЗ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЛ рдкрд╣рд▓реЗ рдПрдХ рдЕрдирд┐рд░реНрджрд┐рд╖реНрдЯ рдПрдкреАрдЖрдИ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдерд╛, рдФрд░ рдлрд┐рд░ рднреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдкрд░ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдлреЗрдВрдХ рджреА рд╣реИ ... рджреЛрдиреЛрдВ рдЪреЗрддрд╛рд╡рдиреА рдФрд░ рдХреНрд░рдордмрджреНрдз рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рдореЗрд░реА рдкреБрд╕реНрддрдХ рдореЗрдВ "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рджреГрд╢реНрдп рд╡реНрдпрд╡рд╣рд╛рд░" рдХрд╛ рдЧрдарди рдХрд░рддрд╛ рд╣реИ, рдмрд╕ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЧрдВрднреАрд░рддрд╛ рдХрд╛ред
рдореИрдВрдиреЗ SO рдкрд░ рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджрд┐рдпрд╛ рд╣реИред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдлреА рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╣реИ рдФрд░ рдореИрдВ рднреА рдЗрд╕ рдкрд░ рдареЛрдХрд░ рдЦрд╛рдИред
рднреЛрд▓реЗрдкрди рд╕реЗ рдХреЛрдИ рдЙрдореНрдореАрдж рдХрд░реЗрдЧрд╛ рдХрд┐ рд╕реНрддрдВрднреЛрдВ рдХрд╛ рдХреНрд░рдо рд╕рдВрд░рдХреНрд╖рд┐рдд рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдХреЙрд▓рдо рдХреНрд░рдордмрджреНрдз рд╣реИрдВ:
рдЗрд╕реЗ рдореВрд▓ рд╕реНрддрдВрднреЛрдВ рдХреЗ рд╕рд╛рде рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдкреБрди: рдЕрдиреБрдХреНрд░рдордгрд┐рдд рдХрд░рдХреЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
рдлрд┐рд░ рднреА рдпрд╣ рдкреНрд░рддрд┐-рд╕рд╣рдЬ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЫрдБрдЯрд╛рдИ рд╣реЛрддреА рд╣реИ рдФрд░ рдЬрд╣рд╛рдБ рддрдХ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдЗрд╕реЗ рдЕрдХреНрд╖рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред