рдкрдВрдбреЛрдВ рдХреЗ 5 рдЕрд▓реНрдкрдЬреНрдЮрд╛рдд рд░рд╣рд╕реНрдп


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

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

рдпрд╣рд╛рдВ рдЖрдк рд▓реЗрдЦ рд╕реЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЬреНрдпреВрдкрд┐рдЯрд░ рдиреЛрдЯрдмреБрдХ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред

1. рдбреЗрдЯ рд░реЗрдВрдЬ [рдбреЗрдЯ рд░реЗрдВрдЬ]


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

рдХрд╣реЗрдВ рдХрд┐ рд╣рдореЗрдВ рджрд┐рди рдХреЗ рд╣рд┐рд╕рд╛рдм рд╕реЗ рддрд╛рд░реАрдЦ рд╕реАрдорд╛ рдЪрд╛рд╣рд┐рдП:

date_from = "2019-01-01"
date_to = "2019-01-12"
date_range = pd.date_range(date_from, date_to, freq="D")
date_range



рд╣рдо рдЬрдирд░реЗрдЯ date_rangeрдХреА рдЧрдИ рддрд╛рд░реАрдЦреЛрдВ рдХреЛ "рд╕реЗ" рдФрд░ "рд╕реЗ" рдореЗрдВ рдмрджрд▓ рджреЗрдВрдЧреЗ , рдЬрд┐рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

for i, (date_from, date_to) in enumerate(zip(date_range[:-1], date_range[1:]), 1):
   date_from = date_from.date().isoformat()
   date_to = date_to.date().isoformat()
   print("%d. date_from: %s, date_to: %s" % (i, date_from, date_to))

1. date_from: 2019-01-01, date_to: 2019-01-02
2. date_from: 2019-01-02, date_to: 2019-01-03
3. date_from: 2019-01-03, date_to: 2019-01-04
4. date_from: 2019-01-04, date_to: 2019-01-05
5. date_from: 2019-01-05, date_to: 2019-01-06
6. date_from: 2019-01-06, date_to: 2019-01-07
7. date_from: 2019-01-07, date_to: 2019-01-08
8. date_from: 2019-01-08, date_to: 2019-01-09
9. date_from: 2019-01-09, date_to: 2019-01-10
10. date_from: 2019-01-10, date_to: 2019-01-11
11. date_from: 2019-01-11, date_to: 2019-01-12

2. рд╕реНрд░реЛрдд рд╕рдВрдХреЗрддрдХ рдХреЗ рд╕рд╛рде рд╡рд┐рд▓рдп [рд╕рдВрдХреЗрддрдХ рдХреЗ рд╕рд╛рде рд╡рд┐рд▓рдп]


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

рдорд░реНрдЬ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рджреЛ рддрд░реНрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдХрд┐рд╕реА рддрд░рд╣ рдпрд╛рдж рдХрд┐рдпрд╛, рд╡рд╣ рд╣реИ indicatorред "рд╕рдВрдХреЗрддрдХ" _mergeDataFrame рдореЗрдВ рдПрдХ рдХреЙрд▓рдо рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдЬреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдкрдВрдХреНрддрд┐ рдХрд╣рд╛рдБ рд╕реЗ рдЖрдИ рд╣реИ, рдмрд╛рдПрдБ, рджрд╛рдПрдБ, рдпрд╛ рджреЛрдиреЛрдВ DataFrames рд╕реЗред _mergeрдорд░реНрдЬ рдХреЛ рд╕рд╣реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдбрд╝реЗ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рдПрдХ рдХреЙрд▓рдо рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

left = pd.DataFrame({"key": ["key1", "key2", "key3", "key4"], "value_l": [1, 2, 3, 4]})



right = pd.DataFrame({"key": ["key3", "key2", "key1", "key6"], "value_r": [3, 2, 1, 6]})



df_merge = left.merge(right, on='key', how='left', indicator=True)



_mergeрдпрджрд┐ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рд╣реА рд╕рдВрдЦреНрдпрд╛ рджреЛрдиреЛрдВ DataFrames рд╕реЗ рд▓реА рдЧрдИ рдереА, рддреЛ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

df_merge._merge.value_counts()

both          3
left_only     1
right_only    0
Name: _merge, dtype: int64

3. рдирд┐рдХрдЯрддрдо рдореВрд▓реНрдп рд╕реЗ рд╡рд┐рд▓рдп [рдирд┐рдХрдЯрддрдо рдорд░реНрдЬ]


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

рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо quotes("рдЙрджреНрдзрд░рдг") рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд╢реЗрдпрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдп рдкрд░рд┐рд╡рд░реНрддрди рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рд╕реМрджреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЙрджреНрдзрд░рдг рд╣реИрдВред

quotes = pd.DataFrame(
   [
       ["2016-05-25 13:30:00.023", "GOOG", 720.50, 720.93],
       ["2016-05-25 13:30:00.023", "MSFT", 51.95, 51.96],
       ["2016-05-25 13:30:00.030", "MSFT", 51.97, 51.98],
       ["2016-05-25 13:30:00.041", "MSFT", 51.99, 52.00],
       ["2016-05-25 13:30:00.048", "GOOG", 720.50, 720.93],
       ["2016-05-25 13:30:00.049", "AAPL", 97.99, 98.01],
       ["2016-05-25 13:30:00.072", "GOOG", 720.50, 720.88],
       ["2016-05-25 13:30:00.075", "MSFT", 52.01, 52.03],
   ],
   columns=["timestamp", "ticker", "bid", "ask"],
)
quotes['timestamp'] = pd.to_datetime(quotes['timestamp'])



DataFrame tradesрдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд╢реЗрдпрд░реЛрдВ рдХреЗ рд╕реМрджреЗ рд╣реЛрддреЗ рд╣реИрдВред

trades = pd.DataFrame(
   [
       ["2016-05-25 13:30:00.023", "MSFT", 51.95, 75],
       ["2016-05-25 13:30:00.038", "MSFT", 51.95, 155],
       ["2016-05-25 13:30:00.048", "GOOG", 720.77, 100],
       ["2016-05-25 13:30:00.048", "GOOG", 720.92, 100],
       ["2016-05-25 13:30:00.048", "AAPL", 98.00, 100],
   ],
   columns=["timestamp", "ticker", "price", "quantity"],
)
trades['timestamp'] = pd.to_datetime(trades['timestamp'])



рд╣рдо рдЯрд┐рдХреНрдХрд░реЛрдВ (рдПрдХ рдЙрджреНрдзреГрдд рдЙрдкрдХрд░рдг, рдЬреИрд╕реЗ рд╕реНрдЯреЙрдХ) рджреНрд╡рд╛рд░рд╛ рд▓реЗрдирджреЗрди рдФрд░ рдЙрджреНрдзрд░рдг рдХреЛ рдорд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ, рдмрд╢рд░реНрддреЗ рдХрд┐ timestampрдЕрдВрддрд┐рдо рдЙрджреНрдзрд░рдг рд▓реЗрдирджреЗрди рд╕реЗ 10 рдПрдордПрд╕ рдХрдо рд╣реЛред рдпрджрд┐ рдмреЛрд▓реА 10 рдПрдордПрд╕ рд╕реЗ рдЕрдзрд┐рдХ рдХреЗ рд▓реЗрди-рджреЗрди рд╕реЗ рдкрд╣рд▓реЗ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ, рддреЛ рдЗрд╕ рдЙрджреНрдзрд░рдг рдХреЗ рд▓рд┐рдП рдмреЛрд▓реА (рд╡рд╣ рдореВрд▓реНрдп рдЬреЛ рдЦрд░реАрджрд╛рд░ рднреБрдЧрддрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ) рдФрд░ рдкреВрдЫрдирд╛ (рдЬрд┐рд╕ рдХреАрдордд рдкрд░ рд╡рд┐рдХреНрд░реЗрддрд╛ рдмреЗрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ) рд╡рд╣ null(рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ AAPL рдЯрд┐рдХрд░) рд╣реЛрдЧрд╛ред

pd.merge_asof(trades, quotes, on="timestamp", by='ticker', tolerance=pd.Timedelta('10ms'), direction='backward')



4. рдПрдХреНрд╕реЗрд▓ рд░рд┐рдкреЛрд░реНрдЯ рдмрдирд╛рдирд╛




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

df = pd.DataFrame(pd.np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]), columns=["a", "b", "c"])

рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рдПрдХреНрд╕реЗрд▓ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рддрд╛ рд╣реИред рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрди рдХреЛ рдирдВрдЧрд╛ рдХрд░реЗрдВ writer.save()ред

report_name = 'example_report.xlsx'
sheet_name = 'Sheet1'
writer = pd.ExcelWriter(report_name, engine='xlsxwriter')
df.to_excel(writer, sheet_name=sheet_name, index=False)
# writer.save()

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

#   (workbook)
workbook = writer.book
worksheet = writer.sheets[sheet_name]
#   
chart = workbook.add_chart({'type': 'line'})
#       ,
#      /:
#     [sheetname, first_row, first_col, last_row, last_col]
chart.add_series({
   'categories': [sheet_name, 1, 0, 3, 0],
   'values':     [sheet_name, 1, 1, 3, 1],
})
#   
chart.set_x_axis({'name': 'Index', 'position_axis': 'on_tick'})
chart.set_y_axis({'name': 'Value', 'major_gridlines': {'visible': False}})
#    
worksheet.insert_chart('E2', chart)
#  
writer.save()

5. рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди рд╕рд╣реЗрдЬреЗрдВ


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

рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдмрдбрд╝рд╛ DataFrame рдмрдирд╛рдПрдБред

df = pd.DataFrame(pd.np.random.randn(50000,300))



рдпрджрд┐ рдЖрдк рдЗрд╕реЗ CSV рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВ, рддреЛ рдлрд╝рд╛рдЗрд▓ рдЖрдкрдХреА рд╣рд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡ рдкрд░ рд▓рдЧрднрдЧ 300 MB рддрдХ рд▓реЗ рдЬрд╛рдПрдЧреАред

df.to_csv('random_data.csv', index=False)

рдПрдХ рддрд░реНрдХ compression='gzip'рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЖрдХрд╛рд░ 136 рдПрдордмреА рддрдХ рдХрдо рдХрд░ рджреЗрддрд╛ рд╣реИред

df.to_csv('random_data.gz', compression='gzip', index=False)

рдПрдХ рд╕рдВрдкреАрдбрд╝рд┐рдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдПрдХ рдирд┐рдпрдорд┐рдд рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдХрд┐рд╕реА рднреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдирд╣реАрдВ рдЦреЛрддреЗ рд╣реИрдВред

df = pd.read_csv('random_data.gz')

рдирд┐рд╖реНрдХрд░реНрд╖


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

рдкрд╛рдВрдбрд╛ рдХреЗ рд╕рд╛рде рдЖрдкрдХреА рдкрд╕рдВрджреАрджрд╛ рдЪрд╛рд▓ рдХреНрдпрд╛ рд╣реИ?


All Articles