Assignment

To work through various use cases, we'll use a simple DTable called temperatures_dt. This dataset has max and min temperature for 5 cities for the whole year. It's a hypothetical dataset.

>> import dtables
>>
>> temperatures_dt = dtables.load_tuples([
>>    ('city', 'max_temp', 'min_temp'),
>>    ('San Francisco', 105, 25),
>>    ('San Diego', 125, 40),
>>    ('Los Angeles', 115, 35),
>>    ('Santa Barbara', 112, 33),
>>    ('San Jose', 110, 30)
>> ])
>>
>> temperatures_dt
+---------------+----------+----------+
| city          | max_temp | min_temp |
+---------------+----------+----------+
| San Francisco | 105      | 25       |
| San Diego     | 125      | 40       |
| Los Angeles   | 115      | 35       |
| Santa Barbara | 112      | 33       |
| San Jose      | 110      | 30       |
+---------------+----------+----------+

Assigning to Columnar Slices

Case 1: Overwrite an existing column

>> temperature_dt.columns['max_temp'] = [115, 135, 125, 122, 120]
>>
>> temperature_dt
+---------------+----------+----------+
| city          | max_temp | min_temp |
+---------------+----------+----------+
| San Francisco | 115      | 25       |
| San Diego     | 135      | 40       |
| Los Angeles   | 125      | 35       |
| Santa Barbara | 122      | 33       |
| San Jose      | 120      | 30       |
+---------------+----------+----------+

Case 2: Add a new column

>> temperature_dt.columns['max_humidity'] = [90, 98, 95, 88, 85]
>>
>> temperature_dt
+---------------+----------+----------+--------------+
| city          | max_temp | min_temp | max_humidity |
+---------------+----------+----------+--------------+
| San Francisco | 115      | 25       | 90           |
| San Diego     | 135      | 40       | 98           |
| Los Angeles   | 125      | 35       | 95           |
| Santa Barbara | 122      | 33       | 88           |
| San Jose      | 120      | 30       | 85           |
+---------------+----------+----------+--------------+

Case 3: Perform multiple columnar operations together:

>> temperature_dt.columns[ ['min_temp', 'min_humidity'] ] = [
>>    [35, 50, 45, 43, 40],
>>    [75, 80, 73, 75, 77]
>> ]
>>
>> temperature_dt
+---------------+----------+----------+--------------+--------------+
| city          | max_temp | min_temp | max_humidity | min_humidity |
+---------------+----------+----------+--------------+--------------+
| San Francisco | 115      | 35       | 90           | 75           |
| San Diego     | 135      | 50       | 98           | 80           |
| Los Angeles   | 125      | 45       | 95           | 73           |
| Santa Barbara | 122      | 43       | 88           | 75           |
| San Jose      | 120      | 40       | 85           | 77           |
+---------------+----------+----------+--------------+--------------+

Assigning to Row Slice

Case 1: Change the values for one row:

>> temperature_dt.rows[0] = ('San Francisco', 105, 25, 80, 65)
>>
>> temperature_dt
+---------------+----------+----------+--------------+--------------+
| city          | max_temp | min_temp | max_humidity | min_humidity |
+---------------+----------+----------+--------------+--------------+
| San Francisco | 105      | 25       | 80           | 65           |
| San Diego     | 135      | 50       | 98           | 80           |
| Los Angeles   | 125      | 45       | 95           | 73           |
| Santa Barbara | 122      | 43       | 88           | 75           |
| San Jose      | 120      | 40       | 85           | 77           |
+---------------+----------+----------+--------------+--------------+

Case 2: Change the values for multiple rows:

>> temperature_dt.rows[1:3] = [
>>    ('San Diego', 135, 50, 98, 80),
>>    ('Los Angeles', 125, 45, 95, 73),
>>    ('Santa Barbara', 122, 43, 88, 75),
>> ]
>>
>> temperature_dt
+---------------+----------+----------+--------------+--------------+
| city          | max_temp | min_temp | max_humidity | min_humidity |
+---------------+----------+----------+--------------+--------------+
| San Francisco | 105      | 25       | 80           | 65           |
| San Diego     | 135      | 50       | 98           | 80           |
| Los Angeles   | 125      | 45       | 95           | 73           |
| Santa Barbara | 122      | 43       | 88           | 75           |
| San Jose      | 120      | 40       | 85           | 77           |
+---------------+----------+----------+--------------+--------------+

Mixing Column & Row Slices

>> temperature_dt.rows[0].columns['max_temp'] = 125
>> temperature_dt
+---------------+----------+----------+--------------+--------------+
| city          | max_temp | min_temp | max_humidity | min_humidity |
+---------------+----------+----------+--------------+--------------+
| San Francisco | 125      | 25       | 80           | 65           |
| San Diego     | 135      | 50       | 98           | 80           |
| Los Angeles   | 125      | 45       | 95           | 73           |
| Santa Barbara | 122      | 43       | 88           | 75           |
| San Jose      | 120      | 40       | 85           | 77           |
+---------------+----------+----------+--------------+--------------+

Slices are Views; Not Copies

DTable slices are views and not copies. Any modifications made to observations within a slice would also be reflected in the base DTable.

results matching ""

    No results matching ""