2.11. DataFrame Export¶
File paths works also with DATAs
SQL functions uses SQLAlchemy, which supports many RDBMS
2.11.1. SetUp¶
>>> import pandas as pd
>>>
>>> df = pd.DataFrame()
2.11.2. Most Frequently Used¶
>>>
... df.to_csv()
... df.to_dict()
... df.to_excel()
... df.to_json()
... df.to_sql()
2.11.3. Other¶
>>>
... df.to_clipboard()
... df.to_dense()
... df.to_feather()
... df.to_gbq()
... df.to_hdf()
... df.to_html()
... df.to_latex()
... df.to_msgpack()
... df.to_numpy()
... df.to_parquet()
... df.to_period()
... df.to_pickle()
... df.to_records()
... df.to_sparse()
... df.to_stata()
... df.to_string()
... df.to_timestamp()
... df.to_xarray()
2.11.4. Assignments¶
"""
* Assignment: DataFrame Export CSV
* Complexity: easy
* Lines of code: 3 lines
* Time: 5 min
English:
2. Read data from `DATA` as `result: pd.DataFrame`
3. While reading use `header=0` parameter
4. Select 146 head rows, and last 11 from it
5. Export data from column `Event` to file the `FILE`
6. Data has to be in CSV format
7. Run doctests - all must succeed
Polish:
2. Wczytaj dane z `DATA` jako `result: pd.DataFrame`
3. Przy wczytywaniu użyj parametru `header=0`
4. Wybierz pierwszych 146 wierszy, a z nich ostatnie 11
5. Wyeksportuj dane z kolumny `Event` do pliku `FILE`
6. Dane mają być w formacie CSV
7. Uruchom doctesty - wszystkie muszą się powieść
Tests:
>>> import sys; sys.tracebacklimit = 0
>>> from os import remove
>>> result = open(FILE).read()
>>> remove(FILE)
>>> assert result is not Ellipsis, \
'Assign result to variable: `result`'
>>> assert type(result) is str, \
'Variable `result` has invalid type, should be `str`'
>>> print(result) # doctest: +NORMALIZE_WHITESPACE
,Event
135,LM lunar landing.
136,LM powered descent engine cutoff.
137,Decision made to proceed with EVA prior to first rest period.
138,Preparation for EVA started.
139,EVA started (hatch open).
140,CDR completely outside LM on porch.
141,Modular equipment stowage assembly deployed (CDR).
142,First clear TV picture received.
143,"CDR at foot of ladder (starts to report, then pauses to listen)."
144,CDR at foot of ladder and described surface as almost like a powder.
145,1st step taken lunar surface (CDR). That's one small step for a man...one giant leap for mankind.
<BLANKLINE>
"""
import pandas as pd
DATA = 'https://python3.info/_static/apollo11.html'
FILE = r'_temporary.csv'
"""
* Assignment: DataFrame Export JSON
* Complexity: easy
* Lines of code: 3 lines
* Time: 3 min
English:
1. Read data from `DATA` as `result: pd.DataFrame`
2. While reading use `header=0` parameter
3. Select 146 head rows, and last 11 from it
4. Export data from column `Event` to file the `FILE`
5. Data has to be in JSON format
6. Run doctests - all must succeed
Polish:
1. Wczytaj dane z `DATA` jako `result: pd.DataFrame`
2. Przy wczytywaniu użyj parametru `header=0`
3. Wybierz pierwszych 146 wierszy, a z nich ostatnie 11
4. Wyeksportuj dane z kolumny `Event` do pliku `FILE`
5. Dane mają być w formacie JSON
6. Uruchom doctesty - wszystkie muszą się powieść
Tests:
>>> import sys; sys.tracebacklimit = 0
>>> from os import remove
>>> import json
>>> result = open(FILE).read()
>>> remove(FILE)
>>> assert result is not Ellipsis, \
'Assign result to variable: `result`'
>>> assert type(result) is str, \
'Variable `result` has invalid type, should be `str`'
>>> json.loads(result) # doctest: +NORMALIZE_WHITESPACE
{'135': 'LM lunar landing.',
'136': 'LM powered descent engine cutoff.',
'137': 'Decision made to proceed with EVA prior to first rest period.',
'138': 'Preparation for EVA started.',
'139': 'EVA started (hatch open).',
'140': 'CDR completely outside LM on porch.',
'141': 'Modular equipment stowage assembly deployed (CDR).',
'142': 'First clear TV picture received.',
'143': 'CDR at foot of ladder (starts to report, then pauses to listen).',
'144': 'CDR at foot of ladder and described surface as almost like a powder.',
'145': "1st step taken lunar surface (CDR). That\'s one small step for a man...one giant leap for mankind."}
"""
import pandas as pd
DATA = 'https://python3.info/_static/apollo11.html'
FILE = r'_temporary.json'
# Dump DATA to FILE in JSON format
# type: pd.DataFrame
result = ...
"""
* Assignment: DataFrame Export Pickle
* Complexity: easy
* Lines of code: 3 lines
* Time: 3 min
English:
1. Read data from `DATA` as `result: pd.DataFrame`
2. While reading use `header=0` parameter
3. Select 146 head rows, and last 11 from it
4. Export data from column `Event` to file the `FILE`
5. Data has to be in Pickle format
6. Run doctests - all must succeed
Polish:
1. Wczytaj dane z `DATA` jako `result: pd.DataFrame`
2. Przy wczytywaniu użyj parametru `header=0`
3. Wybierz pierwszych 146 wierszy, a z nich ostatnie 11
4. Wyeksportuj dane z kolumny `Event` do pliku `FILE`
5. Dane mają być w formacie Pickle
6. Uruchom doctesty - wszystkie muszą się powieść
Tests:
>>> import sys; sys.tracebacklimit = 0
>>> from os import remove
>>> result = pd.read_pickle(FILE)
>>> remove(FILE)
>>> pd.set_option('display.width', 500)
>>> pd.set_option('display.max_columns', 10)
>>> pd.set_option('display.max_rows', 20)
>>> assert result is not Ellipsis, \
'Assign result to variable: `result`'
>>> assert type(result) is pd.Series, \
'Variable `result` has invalid type, should be `pd.Series`'
>>> result
135 LM lunar landing.
136 LM powered descent engine cutoff.
137 Decision made to proceed with EVA prior to fi...
138 Preparation for EVA started.
139 EVA started (hatch open).
140 CDR completely outside LM on porch.
141 Modular equipment stowage assembly deployed (...
142 First clear TV picture received.
143 CDR at foot of ladder (starts to report, then ...
144 CDR at foot of ladder and described surface as...
145 1st step taken lunar surface (CDR). That's one...
Name: Event, dtype: object
"""
import pandas as pd
DATA = 'https://python3.info/_static/apollo11.html'
FILE = r'_temporary.pkl'
# Dump DATA to FILE in Pickle format
# type: pd.DataFrame
result = ...
"""
* Assignment: DataFrame Export SQL
* Complexity: easy
* Lines of code: 4 lines
* Time: 5 min
English:
1. Read data from `DATA` as `result: pd.DataFrame`
2. While reading use `header=0` parameter
3. Select 146 head rows, and last 11 from it
4. Export data from column `Event` to database `FILE` to table `apollo11`
5. Run doctests - all must succeed
Polish:
1. Wczytaj dane z `DATA` jako `result: pd.DataFrame`
2. Przy wczytywaniu użyj parametru `header=0`
3. Wybierz pierwszych 146 wierszy, a z nich ostatnie 11
4. Wyeksportuj dane z kolumny `Event` do bazy danych `FILE` do tabeli `apollo11`
5. Uruchom doctesty - wszystkie muszą się powieść
Tests:
>>> import sys; sys.tracebacklimit = 0
>>> from os import remove
>>> db = sqlite3.connect(FILE)
>>> result = db.execute('SELECT * FROM apollo11')
>>> remove(FILE)
>>> assert result is not Ellipsis, \
'Assign result to variable: `result`'
>>> list(result) # doctest: +NORMALIZE_WHITESPACE
[(135, 'LM lunar landing.'),
(136, 'LM powered descent engine cutoff.'),
(137, 'Decision made to proceed with EVA prior to first rest period.'),
(138, 'Preparation for EVA started.'),
(139, 'EVA started (hatch open).'),
(140, 'CDR completely outside LM on porch.'),
(141, 'Modular equipment stowage assembly deployed (CDR).'),
(142, 'First clear TV picture received.'),
(143, 'CDR at foot of ladder (starts to report, then pauses to listen).'),
(144, 'CDR at foot of ladder and described surface as almost like a powder.'),
(145, "1st step taken lunar surface (CDR). That's one small step for a man...one giant leap for mankind.")]
"""
import sqlite3
import pandas as pd
DATA = 'https://python3.info/_static/apollo11.html'
FILE = r'_temporary.sqlite3'
# Dump DATA to FILE in SQLite3 format
# type: pd.DataFrame
result = ...