We’ll start with a quick, non-comprehensive overview of the fundamental data structures in pandas to get you started. The fundamental behavior about data types, indexing, and axis labeling / alignment apply across all of the objects. To get started, import NumPy and load pandas into your namespace:
In [1]: import numpy as np In [2]: import pandas as pd
Here is a basic tenet to keep in mind: data alignment is intrinsic. The link between labels and data will not be broken unless done so explicitly by you.
We’ll give a brief intro to the data structures, then consider all of the broad categories of functionality and methods in separate sections.
Series is a one-dimensional labeled array capable of holding any data type (integers, strings, floating point numbers, Python objects, etc.). The axis labels are collectively referred to as the index. The basic method to create a Series is to call:
Series
>>> s = pd.Series(data, index=index)
Here, data can be many different things:
data
a Python dict
an ndarray
a scalar value (like 5)
The passed index is a list of axis labels. Thus, this separates into a few cases depending on what data is:
From ndarray
If data is an ndarray, index must be the same length as data. If no index is passed, one will be created having values [0, ..., len(data) - 1].
[0, ..., len(data) - 1]
In [3]: s = pd.Series(np.random.randn(5), index=['a', 'b', 'c', 'd', 'e']) In [4]: s Out[4]: a 0.469112 b -0.282863 c -1.509059 d -1.135632 e 1.212112 dtype: float64 In [5]: s.index Out[5]: Index(['a', 'b', 'c', 'd', 'e'], dtype='object') In [6]: pd.Series(np.random.randn(5)) Out[6]: 0 -0.173215 1 0.119209 2 -1.044236 3 -0.861849 4 -2.104569 dtype: float64
Note
pandas supports non-unique index values. If an operation that does not support duplicate index values is attempted, an exception will be raised at that time. The reason for being lazy is nearly all performance-based (there are many instances in computations, like parts of GroupBy, where the index is not used).
From dict
Series can be instantiated from dicts:
In [7]: d = {'b': 1, 'a': 0, 'c': 2} In [8]: pd.Series(d) Out[8]: b 1 a 0 c 2 dtype: int64
When the data is a dict, and an index is not passed, the Series index will be ordered by the dict’s insertion order, if you’re using Python version >= 3.6 and Pandas version >= 0.23.
If you’re using Python < 3.6 or Pandas < 0.23, and an index is not passed, the Series index will be the lexically ordered list of dict keys.
In the example above, if you were on a Python version lower than 3.6 or a Pandas version lower than 0.23, the Series would be ordered by the lexical order of the dict keys (i.e. ['a', 'b', 'c'] rather than ['b', 'a', 'c']).
['a', 'b', 'c']
['b', 'a', 'c']
If an index is passed, the values in data corresponding to the labels in the index will be pulled out.
In [9]: d = {'a': 0., 'b': 1., 'c': 2.} In [10]: pd.Series(d) Out[10]: a 0.0 b 1.0 c 2.0 dtype: float64 In [11]: pd.Series(d, index=['b', 'c', 'd', 'a']) Out[11]: b 1.0 c 2.0 d NaN a 0.0 dtype: float64
NaN (not a number) is the standard missing data marker used in pandas.
From scalar value
If data is a scalar value, an index must be provided. The value will be repeated to match the length of index.
In [12]: pd.Series(5., index=['a', 'b', 'c', 'd', 'e']) Out[12]: a 5.0 b 5.0 c 5.0 d 5.0 e 5.0 dtype: float64
Series acts very similarly to a ndarray, and is a valid argument to most NumPy functions. However, operations such as slicing will also slice the index.
ndarray
In [13]: s[0] Out[13]: 0.4691122999071863 In [14]: s[:3] Out[14]: a 0.469112 b -0.282863 c -1.509059 dtype: float64 In [15]: s[s > s.median()] Out[15]: a 0.469112 e 1.212112 dtype: float64 In [16]: s[[4, 3, 1]] Out[16]: e 1.212112 d -1.135632 b -0.282863 dtype: float64 In [17]: np.exp(s) Out[17]: a 1.598575 b 0.753623 c 0.221118 d 0.321219 e 3.360575 dtype: float64
We will address array-based indexing like s[[4, 3, 1]] in section.
s[[4, 3, 1]]
Like a NumPy array, a pandas Series has a dtype.
dtype
In [18]: s.dtype Out[18]: dtype('float64')
This is often a NumPy dtype. However, pandas and 3rd-party libraries extend NumPy’s type system in a few places, in which case the dtype would be an ExtensionDtype. Some examples within pandas are Categorical data and Nullable integer data type. See dtypes for more.
ExtensionDtype
If you need the actual array backing a Series, use Series.array.
Series.array
In [19]: s.array Out[19]: <PandasArray> [ 0.4691122999071863, -0.2828633443286633, -1.5090585031735124, -1.1356323710171934, 1.2121120250208506] Length: 5, dtype: float64
Accessing the array can be useful when you need to do some operation without the index (to disable automatic alignment, for example).
Series.array will always be an ExtensionArray. Briefly, an ExtensionArray is a thin wrapper around one or more concrete arrays like a numpy.ndarray. Pandas knows how to take an ExtensionArray and store it in a Series or a column of a DataFrame. See dtypes for more.
ExtensionArray
numpy.ndarray
DataFrame
While Series is ndarray-like, if you need an actual ndarray, then use Series.to_numpy().
Series.to_numpy()
In [20]: s.to_numpy() Out[20]: array([ 0.4691, -0.2829, -1.5091, -1.1356, 1.2121])
Even if the Series is backed by a ExtensionArray, Series.to_numpy() will return a NumPy ndarray.
A Series is like a fixed-size dict in that you can get and set values by index label:
In [21]: s['a'] Out[21]: 0.4691122999071863 In [22]: s['e'] = 12. In [23]: s Out[23]: a 0.469112 b -0.282863 c -1.509059 d -1.135632 e 12.000000 dtype: float64 In [24]: 'e' in s Out[24]: True In [25]: 'f' in s Out[25]: False
If a label is not contained, an exception is raised:
>>> s['f'] KeyError: 'f'
Using the get method, a missing label will return None or specified default:
get
In [26]: s.get('f') In [27]: s.get('f', np.nan) Out[27]: nan
See also the section on attribute access.
When working with raw NumPy arrays, looping through value-by-value is usually not necessary. The same is true when working with Series in pandas. Series can also be passed into most NumPy methods expecting an ndarray.
In [28]: s + s Out[28]: a 0.938225 b -0.565727 c -3.018117 d -2.271265 e 24.000000 dtype: float64 In [29]: s * 2 Out[29]: a 0.938225 b -0.565727 c -3.018117 d -2.271265 e 24.000000 dtype: float64 In [30]: np.exp(s) Out[30]: a 1.598575 b 0.753623 c 0.221118 d 0.321219 e<PHONE_NUMBER>19 dtype: float64
A key difference between Series and ndarray is that operations between Series automatically align the data based on label. Thus, you can write computations without giving consideration to whether the Series involved have the same labels.
In [31]: s[1:] + s[:-1] Out[31]: a NaN b -0.565727 c -3.018117 d -2.271265 e NaN dtype: float64
The result of an operation between unaligned Series will have the union of the indexes involved. If a label is not found in one Series or the other, the result will be marked as missing NaN. Being able to write code without doing any explicit data alignment grants immense freedom and flexibility in interactive data analysis and research. The integrated data alignment features of the pandas data structures set pandas apart from the majority of related tools for working with labeled data.
NaN
In general, we chose to make the default result of operations between differently indexed objects yield the union of the indexes in order to avoid loss of information. Having an index label, though the data is missing, is typically important information as part of a computation. You of course have the option of dropping labels with missing data via the dropna function.
Series can also have a name attribute:
name
In [32]: s = pd.Series(np.random.randn(5), name='something') In [33]: s Out[33]: 0 -0.494929 1 1.071804 2 0.721555 3 -0.706771 4 -1.039575 Name: something, dtype: float64 In [34]: s.name Out[34]: 'something'
The Series name will be assigned automatically in many cases, in particular when taking 1D slices of DataFrame as you will see below.
You can rename a Series with the pandas.Series.rename() method.
pandas.Series.rename()
In [35]: s2 = s.rename("different") In [36]: s2.name Out[36]: 'different'
Note that s and s2 refer to different objects.
s
s2
DataFrame is a 2-dimensional labeled data structure with columns of potentially different types. You can think of it like a spreadsheet or SQL table, or a dict of Series objects. It is generally the most commonly used pandas object. Like Series, DataFrame accepts many different kinds of input:
Dict of 1D ndarrays, lists, dicts, or Series
2-D numpy.ndarray
Structured or record ndarray
A Series
Another DataFrame
Along with the data, you can optionally pass index (row labels) and columns (column labels) arguments. If you pass an index and / or columns, you are guaranteeing the index and / or columns of the resulting DataFrame. Thus, a dict of Series plus a specific index will discard all data not matching up to the passed index.
If axis labels are not passed, they will be constructed from the input data based on common sense rules.
When the data is a dict, and columns is not specified, the DataFrame columns will be ordered by the dict’s insertion order, if you are using Python version >= 3.6 and Pandas >= 0.23.
columns
If you are using Python < 3.6 or Pandas < 0.23, and columns is not specified, the DataFrame columns will be the lexically ordered list of dict keys.
The resulting index will be the union of the indexes of the various Series. If there are any nested dicts, these will first be converted to Series. If no columns are passed, the columns will be the ordered list of dict keys.
In [37]: d = {'one': pd.Series([1., 2., 3.], index=['a', 'b', 'c']), ....: 'two': pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd'])} ....: In [38]: df = pd.DataFrame(d) In [39]: df Out[39]: one two a 1.0 1.0 b 2.0 2.0 c 3.0 3.0 d NaN 4.0 In [40]: pd.DataFrame(d, index=['d', 'b', 'a']) Out[40]: one two d NaN 4.0 b 2.0 2.0 a 1.0 1.0 In [41]: pd.DataFrame(d, index=['d', 'b', 'a'], columns=['two', 'three']) Out[41]: two three d 4.0 NaN b 2.0 NaN a 1.0 NaN
The row and column labels can be accessed respectively by accessing the index and columns attributes:
When a particular set of columns is passed along with a dict of data, the passed columns override the keys in the dict.
In [42]: df.index Out[42]: Index(['a', 'b', 'c', 'd'], dtype='object') In [43]: df.columns Out[43]: Index(['one', 'two'], dtype='object')
The ndarrays must all be the same length. If an index is passed, it must clearly also be the same length as the arrays. If no index is passed, the result will be range(n), where n is the array length.
range(n)
n
In [44]: d = {'one': [1., 2., 3., 4.], ....: 'two': [4., 3., 2., 1.]} ....: In [45]: pd.DataFrame(d) Out[45]: one two 0 1.0 4.0 1 2.0 3.0 2 3.0 2.0 3 4.0 1.0 In [46]: pd.DataFrame(d, index=['a', 'b', 'c', 'd']) Out[46]: one two a 1.0 4.0 b 2.0 3.0 c 3.0 2.0 d 4.0 1.0
This case is handled identically to a dict of arrays.
In [47]: data = np.zeros((2, ), dtype=[('A', 'i4'), ('B', 'f4'), ('C', 'a10')]) In [48]: data[:] = [(1, 2., 'Hello'), (2, 3., "World")] In [49]: pd.DataFrame(data) Out[49]: A B C 0 1 2.0 b'Hello' 1 2 3.0 b'World' In [50]: pd.DataFrame(data, index=['first', 'second']) Out[50]: A B C first 1 2.0 b'Hello' second 2 3.0 b'World' In [51]: pd.DataFrame(data, columns=['C', 'A', 'B']) Out[51]: C A B 0 b'Hello' 1 2.0 1 b'World' 2 3.0
DataFrame is not intended to work exactly like a 2-dimensional NumPy ndarray.
In [52]: data2 = [{'a': 1, 'b': 2}, {'a': 5, 'b': 10, 'c': 20}] In [53]: pd.DataFrame(data2) Out[53]: a b c 0 1 2 NaN 1 5 10 20.0 In [54]: pd.DataFrame(data2, index=['first', 'second']) Out[54]: a b c first 1 2 NaN second 5 10 20.0 In [55]: pd.DataFrame(data2, columns=['a', 'b']) Out[55]: a b 0 1 2 1 5 10
You can automatically create a MultiIndexed frame by passing a tuples dictionary.
In [56]: pd.DataFrame({('a', 'b'): {('A', 'B'): 1, ('A', 'C'): 2}, ....: ('a', 'a'): {('A', 'C'): 3, ('A', 'B'): 4}, ....: ('a', 'c'): {('A', 'B'): 5, ('A', 'C'): 6}, ....: ('b', 'a'): {('A', 'C'): 7, ('A', 'B'): 8}, ....: ('b', 'b'): {('A', 'D'): 9, ('A', 'B'): 10}}) ....: Out[56]: a b b a c a b A B 1.0 4.0 5.0 8.0 10.0 C 2.0 3.0 6.0 7.0 NaN D NaN NaN NaN NaN 9.0
The result will be a DataFrame with the same index as the input Series, and with one column whose name is the original name of the Series (only if no other column name provided).
Missing data
Much more will be said on this topic in the Missing data section. To construct a DataFrame with missing data, we use np.nan to represent missing values. Alternatively, you may pass a numpy.MaskedArray as the data argument to the DataFrame constructor, and its masked entries will be considered missing.
np.nan
numpy.MaskedArray
DataFrame.from_dict
DataFrame.from_dict takes a dict of dicts or a dict of array-like sequences and returns a DataFrame. It operates like the DataFrame constructor except for the orient parameter which is 'columns' by default, but which can be set to 'index' in order to use the dict keys as row labels.
orient
'columns'
'index'
In [57]: pd.DataFrame.from_dict(dict([('A', [1, 2, 3]), ('B', [4, 5, 6])])) Out[57]: A B 0 1 4 1 2 5 2 3 6
If you pass orient='index', the keys will be the row labels. In this case, you can also pass the desired column names:
orient='index'
In [58]: pd.DataFrame.from_dict(dict([('A', [1, 2, 3]), ('B', [4, 5, 6])]), ....: orient='index', columns=['one', 'two', 'three']) ....: Out[58]: one two three A 1 2 3 B 4 5 6
DataFrame.from_records
DataFrame.from_records takes a list of tuples or an ndarray with structured dtype. It works analogously to the normal DataFrame constructor, except that the resulting DataFrame index may be a specific field of the structured dtype. For example:
In [59]: data Out[59]: array([(1, 2., b'Hello'), (2, 3., b'World')], dtype=[('A', '<i4'), ('B', '<f4'), ('C', 'S10')]) In [60]: pd.DataFrame.from_records(data, index='C') Out[60]: A B C b'Hello' 1 2.0 b'World' 2 3.0
You can treat a DataFrame semantically like a dict of like-indexed Series objects. Getting, setting, and deleting columns works with the same syntax as the analogous dict operations:
In [61]: df['one'] Out[61]: a 1.0 b 2.0 c 3.0 d NaN Name: one, dtype: float64 In [62]: df['three'] = df['one'] * df['two'] In [63]: df['flag'] = df['one'] > 2 In [64]: df Out[64]: one two three flag a 1.0 1.0 1.0 False b 2.0 2.0 4.0 False c 3.0 3.0 9.0 True d NaN 4.0 NaN False
Columns can be deleted or popped like with a dict:
In [65]: del df['two'] In [66]: three = df.pop('three') In [67]: df Out[67]: one flag a 1.0 False b 2.0 False c 3.0 True d NaN False
When inserting a scalar value, it will naturally be propagated to fill the column:
In [68]: df['foo'] = 'bar' In [69]: df Out[69]: one flag foo a 1.0 False bar b 2.0 False bar c 3.0 True bar d NaN False bar
When inserting a Series that does not have the same index as the DataFrame, it will be conformed to the DataFrame’s index:
In [70]: df['one_trunc'] = df['one'][:2] In [71]: df Out[71]: one flag foo one_trunc a 1.0 False bar 1.0 b 2.0 False bar 2.0 c 3.0 True bar NaN d NaN False bar NaN
You can insert raw ndarrays but their length must match the length of the DataFrame’s index.
By default, columns get inserted at the end. The insert function is available to insert at a particular location in the columns:
insert
In [72]: df.insert(1, 'bar', df['one']) In [73]: df Out[73]: one bar flag foo one_trunc a 1.0 1.0 False bar 1.0 b 2.0 2.0 False bar 2.0 c 3.0 3.0 True bar NaN d NaN NaN False bar NaN
Inspired by dplyr’s mutate verb, DataFrame has an assign() method that allows you to easily create new columns that are potentially derived from existing columns.
mutate
assign()
In [74]: iris = pd.read_csv('data/iris.data') In [75]: iris.head() Out[75]: SepalLength SepalWidth PetalLength PetalWidth Name 0 5.1 3.5 1.4 0.2 Iris-setosa 1 4.9 3.0 1.4 0.2 Iris-setosa 2 4.7 3.2 1.3 0.2 Iris-setosa 3 4.6 3.1 1.5 0.2 Iris-setosa 4 5.0 3.6 1.4 0.2 Iris-setosa In [76]: (iris.assign(sepal_ratio=iris['SepalWidth'] / iris['SepalLength']) ....: .head()) ....: Out[76]: SepalLength SepalWidth PetalLength PetalWidth Name sepal_ratio 0 5.1 3.5 1.4 0.2 Iris-setosa 0.686275 1 4.9 3.0 1.4 0.2 Iris-setosa 0.612245 2 4.7 3.2 1.3 0.2 Iris-setosa 0.680851 3 4.6 3.1 1.5 0.2 Iris-setosa 0.673913 4 5.0 3.6 1.4 0.2 Iris-setosa 0.720000
In the example above, we inserted a precomputed value. We can also pass in a function of one argument to be evaluated on the DataFrame being assigned to.
In [77]: iris.assign(sepal_ratio=lambda x: (x['SepalWidth'] / x['SepalLength'])).head() Out[77]: SepalLength SepalWidth PetalLength PetalWidth Name sepal_ratio 0 5.1 3.5 1.4 0.2 Iris-setosa 0.686275 1 4.9 3.0 1.4 0.2 Iris-setosa 0.612245 2 4.7 3.2 1.3 0.2 Iris-setosa 0.680851 3 4.6 3.1 1.5 0.2 Iris-setosa 0.673913 4 5.0 3.6 1.4 0.2 Iris-setosa 0.720000
assign always returns a copy of the data, leaving the original DataFrame untouched.
assign
Passing a callable, as opposed to an actual value to be inserted, is useful when you don’t have a reference to the DataFrame at hand. This is common when using assign in a chain of operations. For example, we can limit the DataFrame to just those observations with a Sepal Length greater than 5, calculate the ratio, and plot:
In [78]: (iris.query('SepalLength > 5') ....: .assign(SepalRatio=lambda x: x.SepalWidth / x.SepalLength, ....: PetalRatio=lambda x: x.PetalWidth / x.PetalLength) ....: .plot(kind='scatter', x='SepalRatio', y='PetalRatio')) ....: Out[78]: <matplotlib.axes._subplots.AxesSubplot at 0x7f2d10f222d0>
Since a function is passed in, the function is computed on the DataFrame being assigned to. Importantly, this is the DataFrame that’s been filtered to those rows with sepal length greater than 5. The filtering happens first, and then the ratio calculations. This is an example where we didn’t have a reference to the filtered DataFrame available.
The function signature for assign is simply **kwargs. The keys are the column names for the new fields, and the values are either a value to be inserted (for example, a Series or NumPy array), or a function of one argument to be called on the DataFrame. A copy of the original DataFrame is returned, with the new values inserted.
**kwargs
Changed in version 0.23.0.
Starting with Python 3.6 the order of **kwargs is preserved. This allows for dependent assignment, where an expression later in **kwargs can refer to a column created earlier in the same assign().
In [79]: dfa = pd.DataFrame({"A": [1, 2, 3], ....: "B": [4, 5, 6]}) ....: In [80]: dfa.assign(C=lambda x: x['A'] + x['B'], ....: D=lambda x: x['A'] + x['C']) ....: Out[80]: A B C D 0 1 4 5 6 1 2 5 7 9 2 3 6 9 12
In the second expression, x['C'] will refer to the newly created column, that’s equal to dfa['A'] + dfa['B'].
x['C']
dfa['A'] + dfa['B']
The basics of indexing are as follows:
Operation
Syntax
Result
Select column
df[col]
Select row by label
df.loc[label]
Select row by integer location
df.iloc[loc]
Slice rows
df[5:10]
Select rows by boolean vector
df[bool_vec]
Row selection, for example, returns a Series whose index is the columns of the DataFrame:
In [81]: df.loc['b'] Out[81]: one 2 bar 2 flag False foo bar one_trunc 2 Name: b, dtype: object In [82]: df.iloc[2] Out[82]: one 3 bar 3 flag True foo bar one_trunc NaN Name: c, dtype: object
For a more exhaustive treatment of sophisticated label-based indexing and slicing, see the section on indexing. We will address the fundamentals of reindexing / conforming to new sets of labels in the section on reindexing.
Data alignment between DataFrame objects automatically align on both the columns and the index (row labels). Again, the resulting object will have the union of the column and row labels.
In [83]: df = pd.DataFrame(np.random.randn(10, 4), columns=['A', 'B', 'C', 'D']) In [84]: df2 = pd.DataFrame(np.random.randn(7, 3), columns=['A', 'B', 'C']) In [85]: df + df2 Out[85]: A B C D 0 0.045691 -0.014138 1.380871 NaN 1 -0.955398 -1.501007 0.037181 NaN 2 -0.662690 1.534833 -0.859691 NaN 3 -2.452949 1.237274 -0.133712 NaN 4 1.414490 1.951676 -2.320422 NaN 5 -0.494922 -1.649727 -1.084601 NaN 6 -1.047551 -0.748572 -0.805479 NaN 7 NaN NaN NaN NaN 8 NaN NaN NaN NaN 9 NaN NaN NaN NaN
When doing an operation between DataFrame and Series, the default behavior is to align the Series index on the DataFrame columns, thus broadcasting row-wise. For example:
In [86]: df - df.iloc[0] Out[86]: A B C D 0 0.000000 0.000000 0.000000 0.000000 1 -1.359261 -0.248717 -0.453372 -1.754659 2 0.253128 0.829678 0.010026 -1.991234 3 -1.311128 0.054325 -1.724913 -1.620544 4 0.573025 1.500742 -0.676070 1.367331 5 -1.741248 0.781993 -1.241620 -2.053136 6 -1.240774 -0.869551 -0.153282 0.000430 7 -0.743894 0.411013 -0.929563 -0.282386 8 -1.194921 1.320690 0.238224 -1.482644 9 2.293786 1.856228 0.773289 -1.446531
In the special case of working with time series data, if the DataFrame index contains dates, the broadcasting will be column-wise:
In [87]: index = pd.date_range('1/1/2000', periods=8) In [88]: df = pd.DataFrame(np.random.randn(8, 3), index=index, columns=list('ABC')) In [89]: df Out[89]: A B C 2000-01-01 -1.226825 0.769804 -1.281247 2000-01-02 -0.727707 -0.121306 -0.097883 2000-01-03 0.695775 0.341734 0.959726 2000-01-04 -1.110336 -0.619976 0.149748 2000-01-05 -0.732339 0.687738 0.176444 2000-01-06 0.403310 -0.154951 0.301624 2000-01-07 -2.179861 -1.369849 -0.954208 2000-01-08 1.462696 -1.743161 -0.826591 In [90]: type(df['A']) Out[90]: pandas.core.series.Series In [91]: df - df['A'] Out[91]: 2000-01-01 00:00:00 2000-01-02 00:00:00 2000-01-03 00:00:00 ... A B C 2000-01-01 NaN NaN NaN ... NaN NaN NaN 2000-01-02 NaN NaN NaN ... NaN NaN NaN 2000-01-03 NaN NaN NaN ... NaN NaN NaN 2000-01-04 NaN NaN NaN ... NaN NaN NaN 2000-01-05 NaN NaN NaN ... NaN NaN NaN 2000-01-06 NaN NaN NaN ... NaN NaN NaN 2000-01-07 NaN NaN NaN ... NaN NaN NaN 2000-01-08 NaN NaN NaN ... NaN NaN NaN [8 rows x 11 columns]
Warning
df - df['A']
is now deprecated and will be removed in a future release. The preferred way to replicate this behavior is
df.sub(df['A'], axis=0)
For explicit control over the matching and broadcasting behavior, see the section on flexible binary operations.
Operations with scalars are just as you would expect:
In [92]: df * 5 + 2 Out[92]: A B C 2000-01-01 -4.134126 5.849018 -4.406237 2000-01-02 -1.638535 1.393469 1.510587 2000-01-03 5.478873 3.708672 6.798628 2000-01-04 -3.551681 -1.099880 2.748742 2000-01-05 -1.661697 5.438692 2.882222 2000-01-06 4.016548 1.225246 3.508122 2000-01-07 -8.899303 -4.849247 -2.771039 2000-01-08 9.313480 -6.715805 -2.132955 In [93]: 1 / df Out[93]: A B C 2000-01-01 -0.815112 1.299033 -0.780489 2000-01-02 -1.374179 -8.243600 -10.216313 2000-01-03 1.437247 2.926250 1.041965 2000-01-04 -0.900628 -1.612966 6.677871 2000-01-05 -1.365487 1.454041 5.667510 2000-01-06 2.479485 -6.453662 3.315381 2000-01-07 -0.458745 -0.730007 -1.047990 2000-01-08 0.683669 -0.573671 -1.209788 In [94]: df ** 4 Out[94]: A B C 2000-01-01 2.265327 0.351172 2.694833 2000-01-02 0.280431 0.000217 0.000092 2000-01-03 0.234355 0.013638 0.848376 2000-01-04 1.519910 0.147740 0.000503 2000-01-05 0.287640 0.223714 0.000969 2000-01-06 0.026458 0.000576 0.008277 2000-01-07 22.579530 3.521204 0.829033 2000-01-08 4.577374 9.233151 0.466834
Boolean operators work as well:
In [95]: df1 = pd.DataFrame({'a': [1, 0, 1], 'b': [0, 1, 1]}, dtype=bool) In [96]: df2 = pd.DataFrame({'a': [0, 1, 1], 'b': [1, 1, 0]}, dtype=bool) In [97]: df1 & df2 Out[97]: a b 0 False False 1 False True 2 True False In [98]: df1 | df2 Out[98]: a b 0 True True 1 True True 2 True True In [99]: df1 ^ df2 Out[99]: a b 0 True True 1 True False 2 False True In [100]: -df1 Out[100]: a b 0 False True 1 True False 2 False False
To transpose, access the T attribute (also the transpose function), similar to an ndarray:
T
transpose
# only show the first 5 rows In [101]: df[:5].T Out[101]: 2000-01-01 2000-01-02 2000-01-03 2000-01-04 2000-01-05 A -1.226825 -0.727707 0.695775 -1.110336 -0.732339 B 0.769804 -0.121306 0.341734 -0.619976 0.687738 C -1.281247 -0.097883 0.959726 0.149748 0.176444
Elementwise NumPy ufuncs (log, exp, sqrt, …) and various other NumPy functions can be used with no issues on Series and DataFrame, assuming the data within are numeric:
In [102]: np.exp(df) Out[102]: A B C 2000-01-01 0.293222 2.159342 0.277691 2000-01-02 0.483015 0.885763 0.906755 2000-01-03 2.005262 1.407386 2.610980 2000-01-04 0.329448 0.537957 1.161542 2000-01-05 0.480783 1.989212 1.192968 2000-01-06 1.496770 0.856457 1.352053 2000-01-07 0.113057 0.254145 0.385117 2000-01-08 4.317584 0.174966 0.437538 In [103]: np.asarray(df) Out[103]: array([[-1.2268, 0.7698, -1.2812], [-0.7277, -0.1213, -0.0979], [ 0.6958, 0.3417, 0.9597], [-1.1103, -0.62 , 0.1497], [-0.7323, 0.6877, 0.1764], [ 0.4033, -0.155 , 0.3016], [-2.1799, -1.3698, -0.9542], [ 1.4627, -1.7432, -0.8266]])
DataFrame is not intended to be a drop-in replacement for ndarray as its indexing semantics and data model are quite different in places from an n-dimensional array.
Series implements __array_ufunc__, which allows it to work with NumPy’s universal functions.
__array_ufunc__
The ufunc is applied to the underlying array in a Series.
In [104]: ser = pd.Series([1, 2, 3, 4]) In [105]: np.exp(ser) Out[105]: 0 2.718282 1 7.389056 2 20.085537 3 54.598150 dtype: float64
Changed in version 0.25.0: When multiple Series are passed to a ufunc, they are aligned before performing the operation.
Like other parts of the library, pandas will automatically align labeled inputs as part of a ufunc with multiple inputs. For example, using numpy.remainder() on two Series with differently ordered labels will align before the operation.
numpy.remainder()
In [106]: ser1 = pd.Series([1, 2, 3], index=['a', 'b', 'c']) In [107]: ser2 = pd.Series([1, 3, 5], index=['b', 'a', 'c']) In [108]: ser1 Out[108]: a 1 b 2 c 3 dtype: int64 In [109]: ser2 Out[109]: b 1 a 3 c 5 dtype: int64 In [110]: np.remainder(ser1, ser2) Out[110]: a 1 b 0 c 3 dtype: int64
As usual, the union of the two indices is taken, and non-overlapping values are filled with missing values.
In [111]: ser3 = pd.Series([2, 4, 6], index=['b', 'c', 'd']) In [112]: ser3 Out[112]: b 2 c 4 d 6 dtype: int64 In [113]: np.remainder(ser1, ser3) Out[113]: a NaN b 0.0 c 3.0 d NaN dtype: float64
When a binary ufunc is applied to a Series and Index, the Series implementation takes precedence and a Series is returned.
Index
In [114]: ser = pd.Series([1, 2, 3]) In [115]: idx = pd.Index([4, 5, 6]) In [116]: np.maximum(ser, idx) Out[116]: 0 4 1 5 2 6 dtype: int64
NumPy ufuncs are safe to apply to Series backed by non-ndarray arrays, for example arrays.SparseArray (see Sparse calculation). If possible, the ufunc is applied without converting the underlying data to an ndarray.
arrays.SparseArray
Very large DataFrames will be truncated to display them in the console. You can also get a summary using info(). (Here I am reading a CSV version of the baseball dataset from the plyr R package):
info()
In [117]: baseball = pd.read_csv('data/baseball.csv') In [118]: print(baseball) id player year stint team lg g ab r ... sb cs bb so ibb hbp sh sf gidp 0 88641 womacto01 2006 2 CHN NL 19 50 6 ... 1.0 1.0 4 4.0 0.0 0.0 3.0 0.0 0.0 1 88643 schilcu01 2006 1 BOS AL 31 2 0 ... 0.0 0.0 0 1.0 0.0 0.0 0.0 0.0 0.0 .. ... ... ... ... ... .. .. ... .. ... ... ... .. ... ... ... ... ... ... 98 89533 aloumo01 2007 1 NYN NL 87 328 51 ... 3.0 0.0 27 30.0 5.0 2.0 0.0 3.0 13.0 99 89534 alomasa02 2007 1 NYN NL 8 22 1 ... 0.0 0.0 0 3.0 0.0 0.0 0.0 0.0 0.0 [100 rows x 23 columns] In [119]: baseball.info() <class 'pandas.core.frame.DataFrame'> RangeIndex: 100 entries, 0 to 99 Data columns (total 23 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 id 100 non-null int64 1 player 100 non-null object 2 year 100 non-null int64 3 stint 100 non-null int64 4 team 100 non-null object 5 lg 100 non-null object 6 g 100 non-null int64 7 ab 100 non-null int64 8 r 100 non-null int64 9 h 100 non-null int64 10 X2b 100 non-null int64 11 X3b 100 non-null int64 12 hr 100 non-null int64 13 rbi 100 non-null float64 14 sb 100 non-null float64 15 cs 100 non-null float64 16 bb 100 non-null int64 17 so 100 non-null float64 18 ibb 100 non-null float64 19 hbp 100 non-null float64 20 sh 100 non-null float64 21 sf 100 non-null float64 22 gidp 100 non-null float64 dtypes: float64(9), int64(11), object(3) memory usage: 18.1+ KB
However, using to_string will return a string representation of the DataFrame in tabular form, though it won’t always fit the console width:
to_string
In [120]: print(baseball.iloc[-20:, :12].to_string()) id player year stint team lg g ab r h X2b X3b 80 89474 finlest01 2007 1 COL NL 43 94 9 17 3 0 81 89480 embreal01 2007 1 OAK AL 4 0 0 0 0 0 82 89481 edmonji01 2007 1 SLN NL 117 365 39 92 15 2 83 89482 easleda01 2007 1 NYN NL 76 193 24 54 6 0 84 89489 delgaca01 2007 1 NYN NL 139 538 71 139 30 0 85 89493 cormirh01 2007 1 CIN NL 6 0 0 0 0 0 86 89494 coninje01 2007 2 NYN NL 21 41 2 8 2 0 87 89495 coninje01 2007 1 CIN NL 80 215 23 57 11 1 88 89497 clemero02 2007 1 NYA AL 2 2 0 1 0 0 89 89498 claytro01 2007 2 BOS AL 8 6 1 0 0 0 90 89499 claytro01 2007 1 TOR AL 69 189 23 48 14 0 91 89501 cirilje01 2007 2 ARI NL 28 40 6 8 4 0 92 89502 cirilje01 2007 1 MIN AL 50 153 18 40 9 2 93 89521 bondsba01 2007 1 SFN NL 126 340 75 94 14 0 94 89523 biggicr01 2007 1 HOU NL 141 517 68 130 31 3 95 89525 benitar01 2007 2 FLO NL 34 0 0 0 0 0 96 89526 benitar01 2007 1 SFN NL 19 0 0 0 0 0 97 89530 ausmubr01 2007 1 HOU NL 117 349 38 82 16 3 98 89533 aloumo01 2007 1 NYN NL 87 328 51 112 19 1 99 89534 alomasa02 2007 1 NYN NL 8 22 1 3 1 0
Wide DataFrames will be printed across multiple rows by default:
In [121]: pd.DataFrame(np.random.randn(3, 12)) Out[121]: 0 1 2 3 4 ... 7 8 9 10 11 0 -0.345352 1.314232 0.690579 0.995761 2.396780 ... -0.317441 -1.236269 0.896171 -0.487602 -0.082240 1 -2.182937 0.380396 0.084844 0.432390 1.519970 ... 0.274230 0.132885 -0.023688 2.410179 1.450520 2 0.206053 -0.251905 -2.213588 1.063327 1.266143 ... 0.408204 -1.048089 -0.025747 -0.988387 0.094055 [3 rows x 12 columns]
You can change how much to print on a single row by setting the display.width option:
display.width
In [122]: pd.set_option('display.width', 40) # default is 80 In [123]: pd.DataFrame(np.random.randn(3, 12)) Out[123]: 0 1 2 3 4 ... 7 8 9 10 11 0 1.262731 1.289997 0.082423 -0.055758 0.536580 ... -0.034571 -2.484478 -0.281461 0.030711 0.109121 1 1.126203 -0.977349 1.474071 -0.064034 -1.282782 ... 0.441153 2.353925 0.583787 0.221471 -0.744471 2 0.758527 1.729689 -0.964980 -0.845696 -1.340896 ... 1.682706 -1.717693 0.888782 0.228440 0.901805 [3 rows x 12 columns]
You can adjust the max width of the individual columns by setting display.max_colwidth
display.max_colwidth
In [124]: datafile = {'filename': ['filename_01', 'filename_02'], .....: 'path': ["media/user_name/storage/folder_01/filename_01", .....: "media/user_name/storage/folder_02/filename_02"]} .....: In [125]: pd.set_option('display.max_colwidth', 30) In [126]: pd.DataFrame(datafile) Out[126]: filename path 0 filename_01 media/user_name/storage/fo... 1 filename_02 media/user_name/storage/fo... In [127]: pd.set_option('display.max_colwidth', 100) In [128]: pd.DataFrame(datafile) Out[128]: filename path 0 filename_01 media/user_name/storage/folder_01/filename_01 1 filename_02 media/user_name/storage/folder_02/filename_02
You can also disable this feature via the expand_frame_repr option. This will print the table in one block.
expand_frame_repr
If a DataFrame column label is a valid Python variable name, the column can be accessed like an attribute:
In [129]: df = pd.DataFrame({'foo1': np.random.randn(5), .....: 'foo2': np.random.randn(5)}) .....: In [130]: df Out[130]: foo1 foo2 0 1.171216 -0.858447 1 0.520260 0.306996 2 -1.197071 -0.028665 3 -1.066969 0.384316 4 -0.303421 1.574159 In [131]: df.foo1 Out[131]: 0 1.171216 1 0.520260 2 -1.197071 3 -1.066969 4 -0.303421 Name: foo1, dtype: float64
The columns are also connected to the IPython completion mechanism so they can be tab-completed:
In [5]: df.fo<TAB> # noqa: E225, E999 df.foo1 df.foo2


Web History
1990-1998
Lots of text, very little styling, sparse images.
Notable Websites
Some very popular and well-known websites from this period in history.
-
Amazon
An American multinational technology company based in Seattle, Washington, which focuses on e-commerce, cloud computing, digital streaming, and artificial intelligence.
-
Apple
An American multinational technology company headquartered in Cupertino, California, that designs, develops and sells consumer electronics, computer software, and online services.
-
Microsoft
An American multinational technology company with headquarters in Redmond, Washington. It develops, manufactures, licenses, supports, and sells computer software, consumer electronics, personal computers, and related services.
-
Nintendo
A Japanese multinational consumer electronics and video game company headquartered in Kyoto. The company was founded in 1889 as Nintendo Karuta by craftsman Fusajiro Yamauchi and originally produced handmade hanafuda playing cards.
-
Adobe
An American multinational computer software company. Incorporated in Delaware and headquartered in San Jose, California, it has historically focused upon the creation of multimedia and creativity software products, with a more recent foray into digital marketing software.
-
1990
- Archie the first search engine by Alan Emtage, Peter Deutsch and Bill Heelen
- WorldWideWeb the first browser by Tim Berners-Lee
-
1991
- Gopher text-based system that used the hierarchical
menu structure for navigation by the University of Minnesota
- Line Mode Browser second browser by Tim Berners-Lee,
Henrik Frystyk Nielsen and Nicola Pellow
- WWW Virtual Library index of websites by Tim BernersLee
- TheProject.html first website by Tim Berners-Lee
-
1992
- ViolaWWW first browser to support scripting, table rendering
and forms by Pei-Yuan Wei
- BBEdit HTML first version of the BBEdit freeware HTML and text
editor by Bare Bones Software
- First image on the Web by Silvano de Gennaro and Tim
Berners-Lee
- Veronica search engine used in Gopher by Steven Foster and
Fred Barrie
-
1993
- Mosaic first web browser with a graphical interface by
Marc Andreessen and Eric Bina
- Aliweb search engine specifically for the World Wide
Web by Martijn Koster
- Doctor Fun online web comic
- IMDb the Internet Movie Database was launched
- MTV website started as an unofficial site
- The Trojan Horse Coffee Machine first webcam installed
at the University of Cambridge
-
1994
- Yahoo! list of websites (later search engine) by Jerry Yang and
David Filo
- W3C.org World Wide Web Consortium (W3C) for the
development of Web standards (HTML, XHML, XML, CSS, etc) by Tim
Berners-Lee
- Mosaic Netscape 0.9 first one in a series of browsers, called
Netscape Navigator in the subsequent versions, by Netscape
Communications Corporation
- First web banner first web banner in Internet history on the
HotWired magazine website by the AT&T Telecommunications
Company
- GeoCities Internet web hosting company later bought by
Yahoo!, by David Bohnett and John Rezner
- Art.net website to showcase artists in San Francisco
- Cool Site of the Day website to showcase websites
- The Nine Planets one of the first websites using a great
amount of images
- .ping project internet art work that combines the
internet computer network with television in an interactive
engagement, by Antya Umstätter, Steffen Meschkat and Axe
Schmidt
-
1995
- Opera 1.0 MDI (Multiple Document Interface) web browser for several webpages within the software by Opera Software
- Lycos search engine by Michael Loren Mauldin
- User Experience introduction of the concept by Donald Norman, Jim Miller and Austin Henderson of Apple Computer
- Batman Forever website official website for Batman Forever by the web designers effrey Zeldman, Steve McCarron and Alec Pollak
- PHP 1.0 first version of the PHP scripting language by Rasmus Lerdorf
- Amazon.com one of the first online stores by Jeff Bezos
- Internet Explorer 1.0 web browser by Microsoft
- eBay auction website by Pierre Omidyar
- Netscape Navigator 2.0 browser that supported JavaScript, animated GIFs and more HTML tags, by the Netscape Communications Corporation
- FrontPage 1.0 web editor by Vermeer Technologies later bought by Microsoft
- HTML 2.0 development that supported forms, tables, graphics, and a number of new tags
- Adobe PageMill 1.0 web editor by Adobe Systems that allowed users to easily create websites without any knowledge of HTML
- JavaScript 1.0 first version of an object-oriented avaScript by Brendan Eich of Netscape
- AltaVista search engine with high-performance hardware, by Louise Monier and Michael Burrows, later bought by Yahoo!
- Welcome to Securityland internet art work based on questions and answers about the issue of cultural control and personal practices in public spaces, by Julia Scher
- Please Change Beliefs internet art work based in interaction through text, by Jenny Holzer
-
1996
- Internet Archive digital archive for websites, music, software, video, books, etc., by Brewster Kahle
- JScript 1.0 implementation of JavaScript into the Internet Explorer 3.0, by Microsoft
- ASP 1.0 server-side script engine for dynamically generated websites, by Microsoft
- CSS 1 first proposal of cascading style sheets, by W3C
- Macromedia Flash 1.0 program used to create vector animations that could be played in Netscape Navigator and Internet Explorer
- Crankcase one of the first web design companies exploring Macromedia Shockwave
- Spike Webb - Net Detective website showing a point-and-click adventure with visual and sound effects
- FutureWave.com earliest example of Flash used on a website using FutureSplash Animator
- Simpsons website one of the first websites using the FutureSplash player
- Dog-Ma – The Canis Minor Mission internet art work functioning a spaceship used for diverse missions in space, by Bettina Gruber and Christoph Lischka
-
1997
- HTML 3.2 development that supported new tags by W3C
- WAI the Web Accessibility Initiative (WAI), part of the W3C consortium, was launched to improve the accessibility of websites and WWW services for users with disabilities
- Netscape Communicator 4.0 web application suite that included a web browser with CSS 1 support, Netscape Messenger email client, Netscape Composer HTML editor and Netscape Calendar.
- Internet Explorer 4.0 browser version with integration in Windows 95 and Windows 98 operating systems and freely available for the Mac OS, Solaris and HP-UX platforms, by Microsoft
- DHTML term used for the combination of HTML, CSS, and JavaScript, which enhanced interactivity and website dynamics.
- Dreamweaver 1.0 web editor only available for Mac OS, later for Windows too, by Macromedia
- HTML 4.0 new HTML specifications related with language semantics and the use of CSS
- Gabo’s one of the first websites using an innovative Flash intro and navigation, by Alberto Gabriel “Gabo” Mendonza
- convex tv. [on air] internet art radio collective focusing on media and culture, by convex tv.
-
1998
- A List Apart web design news and web development publication, by Jeffrey Zeldman and Brian Platz
- XML 1.0 final recommendation for the Extensible Markup Language (XML) to easily exchange information between applications, by W3C
- Mozilla open source project created after Netscape Communications Corporation released the source code of the Netscape Communicator 5.0 web browser
- Design is Kinky design community website by Andrew Johnstone
- Macromedia Fireworks 1.0 software that worked with both vector and bitmap graphics and was designed specially for web designers
- CSS2 new specifications with new features such as absolute, relative and fixed positioning, z-index, minimum and maximum width or height, etc
- DMOZ.org non-commercial, multilingual catalog of websites, by Sun Microsystems
- Adobe ImageReady 1.0 bitmap graphics editor for short animations
- Google search engine by Larry Page and Sergey Brin
- K10k design community website by Michael Schmidt and Toke Nygaard
- Box Acid Test web page that tested if web browsers supported the CSS language, by Todd Fahrner
- Eye4U one of the first websites that was a global phenomenon, which used a strong audiovisual approach
- NRG.BE first website using surround sound
- Turtleshell first website using floating particles
- Matinée first website using 3D vector graphics
- Full Throttle David Gary Studios : first website to have a loading screen/game
- Praystation one of the first web art and open source websites
- _readme internet art work about the issues of perception and ownership in the internet realm, by Heath Bunting
The Web in Eras of Design
The history of the web can be sub-divided into multiple eras, each one representing a certain time and having its distinct asthetic.
Embrace. Extend. Extinguish.


Log in
×
Win!
Your account has been successfully created.
×
Almost there!
Check your email your email for a verification email.
×
Try again.
Incorrect email and password.
Keep me logged in
Log in
Forgot password?
No account?
Register here


Box Office Records > Domestic > All Movies > Cumulative > All Time Domestic
All Time Domestic Box Office (Rank 3,301-3,400)
See also: All Time Domestic Limited Release - All Time International - All Time Worldwide - All Time Domestic (Inf. Adj.) - Top 2016 Domestic - Top 2017 Domestic
This chart contains the top 100 movies based on the cumulative domestic box office.
Please see our All-Time Top Grossing Films Comparison for a comparison of the daily performance of all films released since 1980 that have earned more than $450 million at the domestic box office.
| Rank | Released | Movie | Domestic Box Office |
International Box Office |
Worldwide Box Office |
|---|---|---|---|---|---|
| 3,301 | 2017 | Sleepless | $20,783,704 | $6,440,605 | $27,224,309 |
| 3,302 | 1994 | The Air Up There | $20,782,439 | $0 | $20,782,439 |
| 3,303 | 2003 | Whale Rider | $20,779,666 | $18,594,934 | $39,374,600 |
| 3,304 | 2016 | Blair Witch | $20,777,061 | $16,716,160 | $37,493,221 |
| 3,305 | 2016 | God’s Not Dead 2 | $20,773,069 | $2,792,003 | $23,565,072 |
| 3,306 | 1983 | The Dead Zone | $20,766,000 | $0 | $20,766,000 |
| 3,307 | 1997 | The Apostle | $20,733,485 | $544,285 | $21,277,770 |
| 3,308 | 1990 | Hamlet | $20,710,451 | $1,783,276 | $22,493,727 |
| 3,309 | 2005 | George A. Romero's Land of the Dead | $20,700,082 | $27,050,933 | $47,751,015 |
| 3,310 | 1996 | Fear | $20,694,623 | $0 | $20,694,623 |
| 3,311 | 2017 | Diary of a Wimpy Kid: The Long Haul | $20,684,951 | $14,699,114 | $35,384,065 |
| 3,312 | 2008 | Mad Money | $20,668,843 | $4,375,214 | $25,044,057 |
| 3,313 | 1965 | Cat Ballou | $20,666,667 | $0 | $20,666,667 |
| 3,314 | 1982 | The Man From Snowy River | $20,659,423 | $0 | $20,659,423 |
| 3,315 | 1994 | Intersection | $20,643,034 | $0 | $20,643,034 |
| 3,316 | 1994 | Iron Will | $20,623,071 | $0 | $20,623,071 |
| 3,317 | 1983 | A Christmas Story | $20,605,209 | $0 | $20,605,209 |
| 3,318 | 1986 | F/X | $20,603,715 | $0 | $20,603,715 |
| 3,319 | 2016 | Keanu | $20,591,853 | $18,124 | $20,609,977 |
| 3,320 | 2007 | The Invisible | $20,568,319 | $2,971,947 | $23,540,266 |
| 3,321 | 1994 | Speechless | $20,564,705 | $0 | $20,564,705 |
| 3,322 | 2009 | Gamer | $20,534,907 | $21,467,122 | $42,002,029 |
| 3,323 | 1985 | Porky's Revenge | $20,518,000 | $0 | $20,518,000 |
| 3,324 | 1971 | The Last Picture Show | $20,505,085 | $0 | $20,505,085 |
| 3,325 | 2017 | The Circle | $20,497,844 | $13,410,000 | $33,907,844 |
| 3,326 | 1981 | The Final Conflict | $20,471,000 | $0 | $20,471,000 |
| 3,327 | 1974 | The Groove Tube | $20,447,000 | $0 | $20,447,000 |
| 3,328 | 2003 | The In-Laws | $20,440,627 | $3,905,032 | $24,345,659 |
| 3,329 | 1990 | Madhouse | $20,438,179 | $0 | $20,438,179 |
| 3,330 | 1990 | The Adventures of Ford Fairlane | $20,423,389 | $0 | $20,423,389 |
| 3,331 | 2004 | Little Black Book | $20,422,207 | $1,336,164 | $21,758,371 |
| 3,332 | 1987 | Hello Again | $20,419,446 | $0 | $20,419,446 |
| 3,333 | 1982 | The Beach Girls | $20,418,789 | $0 | $20,418,789 |
| 3,334 | 1996 | The Glimmer Man | $20,404,841 | $16,000,000 | $36,404,841 |
| 3,335 | 1982 | Some Kind of Hero | $20,400,486 | $0 | $20,400,486 |
| 3,336 | 1946 | Duel in the Sun | $20,400,000 | $0 | $20,400,000 |
| 3,337 | 2014 | Brick Mansions | $20,396,829 | $53,024,395 | $73,421,224 |
| 3,338 | 1978 | F.I.S.T | $20,388,920 | $0 | $20,388,920 |
| 3,339 | 2001 | Valentine | $20,384,136 | $0 | $20,384,136 |
| 3,340 | 2011 | The Three Musketeers | $20,377,913 | $119,500,000 | $139,877,913 |
| 3,341 | 1995 | Showgirls | $20,350,754 | $17,400,000 | $37,750,754 |
| 3,342 | 1985 | Code of Silence | $20,345,361 | $0 | $20,345,361 |
| 3,343 | 2006 | A Prairie Home Companion | $20,342,852 | $6,373,339 | $26,716,191 |
| 3,344 | 2007 | Reno 911!: Miami | $20,342,161 | $1,509,201 | $21,851,362 |
| 3,345 | 2003 | Down with Love | $20,305,251 | $15,151,698 | $35,456,949 |
| 3,346 | 2007 | Gone, Baby, Gone | $20,300,218 | $14,051,944 | $34,352,162 |
| 3,347 | 1996 | City Hall | $20,278,055 | $0 | $20,278,055 |
| 3,348 | 2012 | Premium Rush | $20,275,446 | $11,117,755 | $31,393,201 |
| 3,349 | 1998 | Vampires | $20,268,825 | $0 | $20,268,825 |
| 3,350 | 2006 | Pulse | $20,264,436 | $9,976,999 | $30,241,435 |
| 3,351 | 1981 | The Incredible Shrinking Woman | $20,259,000 | $0 | $20,259,000 |
| 3,352 | 1988 | Action Jackson | $20,257,000 | $0 | $20,257,000 |
| 3,353 | 2010 | Our Family Wedding | $20,255,281 | $1,155,265 | $21,410,546 |
| 3,354 | 1991 | Mobsters | $20,246,790 | $0 | $20,246,790 |
| 3,355 | 1987 | Critical Condition | $20,240,502 | $0 | $20,240,502 |
| 3,356 | 1982 | Six Pack | $20,225,989 | $0 | $20,225,989 |
| 3,357 | 1996 | The People vs. Larry Flynt | $20,224,840 | $0 | $20,224,840 |
| 3,358 | 2010 | Country Strong | $20,218,921 | $383,066 | $20,601,987 |
| 3,359 | 1991 | An American Tail: Fievel Goes West | $20,218,664 | $0 | $20,218,664 |
| 3,360 | 1995 | Sudden Death | $20,214,270 | $0 | $20,214,270 |
| 3,361 | 2008 | Appaloosa | $20,211,394 | $7,700,059 | $27,911,453 |
| 3,362 | 1979 | A Force of One | $20,200,000 | $0 | $20,200,000 |
| 3,363 | 1969 | Jag ar Nyfiken - en film i gult | $20,200,000 | $0 | $20,200,000 |
| 3,364 | 2015 | Secret in Their Eyes | $20,180,155 | $10,628,403 | $30,808,558 |
| 3,365 | 2013 | Homefront | $20,158,492 | $31,536,870 | $51,695,362 |
| 3,366 | 2012 | Big Miracle | $20,157,300 | $5,111,380 | $25,268,680 |
| 3,367 | 1992 | Juice | $20,146,800 | $0 | $20,146,800 |
| 3,368 | 1994 | Corrina, Corrina | $20,146,496 | $0 | $20,146,496 |
| 3,369 | 1996 | Multiplicity | $20,133,326 | $0 | $20,133,326 |
| 3,370 | 1975 | Love and Death | $20,123,742 | $0 | $20,123,742 |
| 3,371 | 1993 | Another Stakeout | $20,107,504 | $0 | $20,107,504 |
| 3,372 | 1980 | Tess | $20,093,330 | $0 | $20,093,330 |
| 3,373 | 1996 | Flipper | $20,080,020 | $10,513,293 | $30,593,313 |
| 3,374 | 1994 | Reality Bites | $20,079,850 | $0 | $20,079,850 |
| 3,375 | 1997 | Booty Call | $20,066,917 | $0 | $20,066,917 |
| 3,376 | 1990 | Stella | $20,062,347 | $0 | $20,062,347 |
| 3,377 | 1994 | With Honors | $20,043,254 | $0 | $20,043,254 |
| 3,378 | 1994 | Only You | $20,042,048 | $0 | $20,042,048 |
| 3,379 | 2005 | Assault On Precinct 13 | $20,040,895 | $16,000,000 | $36,040,895 |
| 3,380 | 1989 | Say Anything… | $20,036,737 | $0 | $20,036,737 |
| 3,381 | 1982 | Creepshow | $20,036,244 | $0 | $20,036,244 |
| 3,382 | 1988 | The Presidio | $20,036,000 | $0 | $20,036,000 |
| 3,383 | 2000 | Down to You | $20,035,310 | $0 | $20,035,310 |
| 3,384 | 1979 | The Life of Brian | $20,008,693 | $0 | $20,008,693 |
| 3,385 | 2016 | Middle School: The Worst Years of My Life | $20,007,149 | $3,304,276 | $23,311,425 |
| 3,386 | 1992 | Prelude to a Kiss | $20,006,730 | $2,690,961 | $22,697,691 |
| 3,387 | 1990 | Taking Care of Business | $20,005,435 | $0 | $20,005,435 |
| 3,388 | 1975 | The Adventure of Sherlock Holmes' Smarter Brother | $20,000,000 | $0 | $20,000,000 |
| 3,389 | 1975 | Barry Lyndon | $20,000,000 | $169,934 | $20,169,934 |
| 3,390 | 1979 | Breaking Away | $20,000,000 | $0 | $20,000,000 |
| 3,391 | 1975 | The Great Waldo Pepper | $20,000,000 | $0 | $20,000,000 |
| 3,392 | 1981 | Outland | $20,000,000 | $0 | $20,000,000 |
| 3,393 | 1953 | Shane | $20,000,000 | $0 | $20,000,000 |
| 3,394 | 1967 | Barefoot in the Park | $19,994,515 | $0 | $19,994,515 |
| 3,395 | 1984 | Unfaithfully Yours | $19,928,200 | $0 | $19,928,200 |
| 3,396 | 1983 | Breathless | $19,910,002 | $0 | $19,910,002 |
| 3,397 | 1985 | Volunteers | $19,875,740 | $0 | $19,875,740 |
| 3,398 | 1998 | Hard Rain | $19,870,567 | $0 | $19,870,567 |
| 3,399 | 1980 | Altered States | $19,853,892 | $0 | $19,853,892 |
| 3,400 | 1998 | Jane Austen's Mafia | $19,843,795 | $10,300,000 | $30,143,795 |
The Domestic Market is defined as the North American movie territory (consisting of the United States, Canada, Puerto Rico and Guam).
This table is updated daily to reflect the latest studio reports.
Note: This chart is not adjusted for inflation.


Obsolete Members for QGraphicsItem
The following members of class QGraphicsItem are obsolete. They are provided to keep old source code working. We strongly advise against using them in new code.
Public Functions
(obsolete) bool | acceptsHoverEvents() const |
(obsolete) QList<QGraphicsItem *> | children() const |
(obsolete) bool | handlesChildEvents() const |
(obsolete) QMatrix | matrix() const |
(obsolete) void | resetMatrix() |
(obsolete) void | rotate(qreal angle) |
(obsolete) void | scale(qreal sx, qreal sy) |
(obsolete) QMatrix | sceneMatrix() const |
(obsolete) void | setAcceptsHoverEvents(bool enabled) |
(obsolete) void | setHandlesChildEvents(bool enabled) |
(obsolete) void | setMatrix(const QMatrix &matrix, bool combine = false) |
(obsolete) void | shear(qreal sh, qreal sv) |
(obsolete) void | translate(qreal dx, qreal dy) |
Member Function Documentation
bool QGraphicsItem::acceptsHoverEvents() const
Call acceptHoverEvents() instead.
See also setAcceptsHoverEvents().
QList<QGraphicsItem *> QGraphicsItem::children() const
Use childItems() instead.
See also setParentItem().
bool QGraphicsItem::handlesChildEvents() const
Returns true
if this item handles child events (i.e., all events intended for any of its children are instead sent to this item); otherwise, false is returned.
This property is useful for item groups; it allows one item to handle events on behalf of its children, as opposed to its children handling their events individually.
The default is to return false; children handle their own events. The exception for this is if the item is a QGraphicsItemGroup, then it defaults to return true.
See also setHandlesChildEvents().
QMatrix QGraphicsItem::matrix() const
Returns the item's affine transformation matrix. This is a subset or the item's full transformation matrix, and might not represent the item's full transformation.
Use transform() instead.
See also setMatrix(), setTransform(), and sceneTransform().
void QGraphicsItem::resetMatrix()
Use resetTransform() instead.
void QGraphicsItem::rotate(qreal angle)
Use
item->setTransform(QTransform().rotate(angle), true);
instead.
Rotates the current item transformation angle degrees clockwise around its origin. To translate around an arbitrary point (x, y), you need to combine translation and rotation with setTransform().
Example:
// Rotate an item 45 degrees around (0, 0). item->rotate(45); // Rotate an item 45 degrees around (x, y). item->setTransform(QTransform().translate(x, y).rotate(45).translate(-x, -y));
See also setTransform(), transform(), scale(), shear(), and translate().
void QGraphicsItem::scale(qreal sx, qreal sy)
Use
setTransform(QTransform::fromScale(sx, sy), true);
instead.
Scales the current item transformation by (sx, sy) around its origin. To scale from an arbitrary point (x, y), you need to combine translation and scaling with setTransform().
Example:
// Scale an item by 3x2 from its origin item->scale(3, 2); // Scale an item by 3x2 from (x, y) item->setTransform(QTransform().translate(x, y).scale(3, 2).translate(-x, -y));
See also setTransform() and transform().
QMatrix QGraphicsItem::sceneMatrix() const
Use sceneTransform() instead.
See also transform(), setTransform(), scenePos(), and The Graphics View Coordinate System.
void QGraphicsItem::setAcceptsHoverEvents(bool enabled)
Use setAcceptHoverEvents(enabled) instead.
See also acceptsHoverEvents().
void QGraphicsItem::setHandlesChildEvents(bool enabled)
If enabled is true, this item is set to handle all events for all its children (i.e., all events intented for any of its children are instead sent to this item); otherwise, if enabled is false, this item will only handle its own events. The default value is false.
This property is useful for item groups; it allows one item to handle events on behalf of its children, as opposed to its children handling their events individually.
If a child item accepts hover events, its parent will receive hover move events as the cursor passes through the child, but it does not receive hover enter and hover leave events on behalf of its child.
See also handlesChildEvents().
void QGraphicsItem::setMatrix(const QMatrix &matrix, bool combine = false)
Sets the item's affine transformation matrix. This is a subset or the item's full transformation matrix, and might not represent the item's full transformation.
Use setTransform() instead.
See also matrix(), transform(), and The Graphics View Coordinate System.
void QGraphicsItem::shear(qreal sh, qreal sv)
Use
setTransform(QTransform().shear(sh, sv), true);
instead.
Shears the current item transformation by (sh, sv).
See also setTransform() and transform().
void QGraphicsItem::translate(qreal dx, qreal dy)
Use setPos() or setTransformOriginPoint() instead. For identical behavior, use
setTransform(QTransform::fromTranslate(dx, dy), true);
Translates the current item transformation by (dx, dy).
If all you want is to move an item, you should call moveBy() or setPos() instead; this function changes the item's translation, which is conceptually separate from its position.
See also setTransform() and transform().


NET 4 U
Customers
All Customers
Online Customers
Tickets
Leads
Invoices
Payments
Zones
Nodes
Packages
Voucher Batches
Voucher
Reports
Customers
Online Customers
Invoices
Payments
Package Sales
Balance Refills
SMS Alerts
Audit Trail
Customer Access Requests
Admin
Users
Ticket Templates
NAS Devices
IP Pools
Settings
Sheetal Dalhobkar
Sheetal Dalhobkar - Web Developer
Location Dashboard
Change Password
Profile
Sign out
Online Customers Report
Genrate Report for the list of all customers, who were online on a particular date and time.
Online At


JURASSIC PARK III (2001) Reviewed by Jerry Saravia July 19th, 2001
The ads proclaim that this is not just another a walk in the park.  Do not expect the filmmakers of this latest snooze to know what it means to entertain the audience. One, twice, maybe. The third time is not the charm. The diamond should be cut ever so delicately so that it can still sparkle.
Let's consider the premise, if you wish to call it that of this latest sequel. A kid is left alone in a Costa Rican island known as Site B or, to Jurassic fans, Isla Sorna. Dr. Grant (Sam Neill), a survivor of the original "Jurassic" film, is persuaded by a rich businessman, Paul Kirby (William H. Macy) and his wife, Amanda (Tea Leoni), to go on a tour of the island, which happens to be infested with dinosaurs. This is no ordinary tour since it turns out that the kid who is HOME ALONE IN ISLA SORNA happens to be related to the Kirbys. Now Grant must confront those sneaky velociraptors and other dangerous breeds of dinosaurs but since he has field experience, he should have no problem. Only the Kirbys and the other members of the tour (including Michael Jeter in a brief role who brings some inkling of humor) are what Jeff Goldblum's Dr. Malcolm in "The Lost World" referred to as "fruitcakes."
That brief premise is a basic concept that can be described as a pitch to a Hollywood studio executive. It is not the basis for a movie. It is just an idea...but what else is there? Not much except countless scenes of dinosaur carnage, loud Dolby-ized roars, hums and thumps, Tea Leoni overexemplifying her screams and that is it. Some brief mention of genetic engineering holds some interest but hardly enough since it is barely mentioned again.
Joe Johnston ("The Rocketeer") takes over the directing chair but you, sir, are no Steven Spielberg. Spielberg knew how much to show on screen and when to aim for some brief over-the-top thrills. He also had the gift for imbuing us with giddiness and a sense of wonder whenever a dinosaur popped up on screen. Johnston, however, overdirects to the hilt as if he was back in "Jumanji" terrain and he has a less than capable editor at the helm (where is Michael Kahn when you need him?) Thus, the film feels disconnected and fruitless in the second half as it shows a dinosaur attack, one-dimensional characters bickering, another attack, more bickering, etc. In the last half-hour, the movie seems to have one too many climaxes and never exactly arrives at a conclusion. Monotony sets in early and it becomes a chore to sit through the movie, even at a seemingly painless 90 minute running time.
The first two "Jurassic Parks" were mindless monster movies to be sure but they at least had a central theme and some sense of purpose. The first film was about the danger of meddling with nature and packaging something unique to the masses - it was a modern-day "Frankenstein" tale. The second film had a more ecological theme, and an understanding of how animals nurture and care for their young. This movie (not based on any novel by Michael Crichton) is about nothing. There is no theme, no sense of purpose and little in the way of ingenuity except to show how life-threatening it is to be trapped in an island of untamed dinosaurs. Why are we back at Isla Sorna, the same island from the last picture? Why not take the dinosaurs to New York City to be exhibited only to then run rampant around the city? A more modern approach to "King Kong" would have ended the series with a bang rather than a whimper. And why leave Laura Dern hanging in a thankless cameo?
"Jurassic Park III" has one or two scary sequences that recall the thrill and intensity of the first film. It is also modest fun for a while seeing William H. Macy maintain a straight face throughout. Still, other actors are left to appear as gaping idiots, particularly Leoni who grates the nerves and Sam Neill, who seems to be coasting by with nary a trace of the humor or pathos he brought to the original. In short, this is a soulless, joyless movie bereft of three-dimensional characters or a strong, compelling story or theme. It is decidedly no walk in the park.
Footnote: *SPOILER* Sam Neill and Laura Dern turn out to be divorced this time out, though she has kids and is remarried. At the end of the first film, they were happily married. What happened to them since? It could have provided some illumination on Neill's Dr. Grant character at least.
For more reviews, check out JERRY AT THE MOVIES at http://moviething.com/members/movies/faust/JATMindex.shtml
E-mail me with any questions, complaints or general comments at<EMAIL_ADDRESS>or at<EMAIL_ADDRESS>========== X-RAMR-ID: 28868 X-Language: en X-RT-ReviewID: 236665 X-RT-TitleID: 1108705 X-RT-SourceID: 875 X-RT-AuthorID: 1314
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Kenneth Ukah
Aspects of Insurance
As an undergraduate studying actuarial science, I will be spending ample time learning about insurance and risk management in the future, from practicing financial mathematics to understanding sound business procedure. So I decided to undertake my analysis project with a focus towards learning more about insurance in the context of the Egyptian Gazette newspaper. Most of my research was done by using the XPath search functions and reading some online media. In this report I will discuss what my findings were, my research process and analysis, and some ways to continue this study given what information I have now.
Insurance vs Assurance
One of the first things I noticed while scanning the newspaper for insurance ads was that there were a handful of ads for assurance firms as well. From what I understand, assurance is just another form of insurance. The rates, policies and procedures are different, yes, but they serve the same purpose. In fact, many insurance ad blocks advertise both forms by placing two firms of different specialties in one block. For example, the Royal Insurance Company is almost always grouped with the Phoenix Assurance Company in their ad block. I suspect the firms cooperated or are affiliated in some way to occupy that space.
I do not see much difference between the two forms of insurance to warrant excluding one form from my analysis. In the future, extensive analysis of insurance or assurance alone might make for more discussion of this topic.
Insurance Firms and Their Specialties
I started my analysis by using XPath to search for every insurance and assurance firm mentioned in the newspaper within the number of issues available to me. Here are some of the core searches that yielded the most results:
//div[@type="page"][@n="1"]//head[contains(.,"Insurance")]
//div[@type="page"][@n="1"]//head[contains(.,"INSURANCE")]
//div[@type="page"][@n="3"]//p[contains(.,"insurance")]
To summarize this approach, I browsed every paragraph (p) and header (head) for the variations of the words “insurance” and “assurance”. The vast majority of results came from the first two pages of any issue, in the form of advertisements.
Searching anywhere else brought mixed results: mentions of insurance within headers were rare outside pages 1-2; searching within paragraphs, however, brought some success. These results came in the form of articles. While some firms were mentioned in the articles, I ultimately decided to narrow my focus to advertisements, as the articles’ information regarding firms was not sufficient for the type of analysis I wanted to undergo.
Here are all of the insurance and assurance firms I found, their specialties, and their founding dates.
There is a relatively even distribution of fire, life, and marine insurance firms, as well as combinations of the three. A handful of these firms are grouped together in the newspaper. Such pairs include Edinburgh Life and Society of Canton, and Royal Insurance and Phoenix Assurance. The number of different firms is smalller than expected, but they appear quite often the newspaper. Based on my searching, a moderate percentage of these firms make daily appearances in the newspaper issues for some time.
The prevalence of these forms of insurance may be explained with historical perspective. Egypt in 1905-1906 is a colony under Britain, and Britain brought to Egypt its forms of trade and business. Britain having port cities is an explanation for the presence of marine insurance in the newspaper, for example. Most if not all of these firms are founded in London or Europe at the least, and it seems most of them had spread their business practices.
A Closer Look at Some Insurance Firms
The 1921 Insurance Almanac by The Underwriter Printing and Publishing Co. provides descriptions of multiple insurance firms found in the Egyptian Gazette.
Sun Insurance Office
The Sun Insurance Office is the oldest insurance company in the world, having been organized in 1710. It was known as the Sun Fire Office until 1891, when by act of Parliament its present title was assumed and the company received authority to transact all kinds of insurance. The resources and operations of the Sun are very extensive; it covers a great variety of risks and has agencies in all parts of the world.
So about a decade after the time frame of this analysis, The Sun Insurance Office became a strong force in the market, with assets in the quarter billions. Sun Insurance was one of the more prevalent ads in the Gazette at this time as well.
Phoenix Assurance Company, Limited
The Phoenix is one of the largest and most widely operated Fire Insurance companies in the world. Its assets approximate $95,451,688; its surplus and special funds $11,584,565. The reputation of the company is of the best in all respects; its strength is most impressive, its respect for its obligations is traditional, and its operations have been attended with exceptional profit. Admitted to the United States in 1804, it was the first English fire insurance company to establish an American agency plant.
Phoenix Assurance was one of the most common insurance ads in the Gazette.
Something else to note from the Insurance Almanac is that many firms in the Gazette have specialties beyond fire, life, and marine. Sun Insurance also specialized in auto, tornado, and explosion insurance. Phoenix Assurance covered for riots and civil commotion as well as sprinkler leakage.
Data Visualizations
Insurance firms in the Gazette were rated highly in the Insurance Almanac. So I endeavored to find out if there was a correlation between an insurance firm’s success and its prevalence in the newspaper, but not all thirteen firms were in the the almanac, unfortunately. A handful of firms mention their funds in their ads, though, so that would be my second parameter, and a more objective one at that.
Here are the numbers of times a firm’s advertisement appeared in the Gazette, using XPath to count the number of valid targets:
Here are the reported funds of firms in the Gazette, taken from the insurance ads (non-reporting firms’ values are left blank):
Gresham Life’s funds were converted from euros to pounds
Unfortunately, half of the firms in the Gazette do not mention their funds in their ads, making the data very incomplete, but not useless. There is enough data to come to the conclusion that a relation between a firm’s prevalence in the newspaper and its funds is non-existent. Guardian Insurance and Law Union & Crown have a similar number of funds but one shows up nearly 150 times while the other, under ten. Another example: Gresham Life has the second-highest funds out of the thirteen, but only appears seven times in the Gazette. And there are more.
So there are some other reasons as to why a firm appears as often as it does unrelated to the success of the firm. It may be that the reason has more to do with the newspaper than the insurance firms.
Final Thoughts and Continuation of The Study
I was left dissatisfied with how my results turned out. My decision to focus my research and data through the advertisements may have been a reason why the results turned out as they did, but not having enough time to fully develop my findings, I feel, is a more comprehensive reason. Deeper and more substantial analysis of this topic requires a better understanding of history and finance, something I cannot afford to acquire at this moment.
There are some other directions of study that can be taken with regards to insurance in the Gazette that may lead to more substantial analysis projects.
XPath and The Historical Context
It is safe to say that there may be more about the insurance firms to be found in the newspaper apart from in advertisements, and the key to finding that information lies in the Gazette’s articles. I had some success searching for key words such as “fire,” or “disaster” in paragraphs using XPath. And the fact that the majority of insurance firms in the Gazette specialize in fire insurance is no coincidence. With a deeper understanding of Egypt’s history through secondary sourcesor personal knowledge, the context behind the ads and articles can be better understood. (P.G.M. Dickinson’s The Sun Insurance Office, 1710-1960: The History of Two and a Half Centuries of British Insurance is a good place to start.)
The Financial Context
I originally intended to include analysis of insurance firms in financial tables in the Gazette, until I could not find any: searching table cells for insurance firms proved fruitless. I admit my knowledge of XPath and finance is limited, but there must be something of worth to find in that newspaper, if not, perhaps through secondary sources. The Reuter’s Telegrams and Share List tables may be the best chances at finding potentially useful information in relation to insurance.
Faulty XPath Results and Limited Issues
While effectively using XPath searches proved difficult, a part of the difficulty came from sifting through incomplete issues or incorrect coding, which would always skew the results of XPath searches. The pool of information in these issues is always changing as additional issues are completed and archived as well. The imperfections of the analysis and coding are to be expected, as this is an undergraduate level course. Perhaps with time and additional data from the Egyptian Gazette, projects of this form can yield more substantial results.


(Wall) #2ca02c, #1f77b4, #ff7f0e, #d62728, #c5b0d5
(Baseboard) #9467bd, #e377c2, #aec7e8, #ffbb78, #98df8a, #c49c94, #9c9ede, #637939
(Chair Rail) #8c564b
(Banister) #7f7f7f, #17becf, #5254a3
(Baluster) #bcbd22, #ff9896, #f7b6d2, #c7c7c7, #dbdb8d, #9edae5, #393b79, #6b6ecf
Note:


Invite friends to contribute to the shared playlist.
Add songs to the shared playlist.
Jockey uses Google Drive to store shared playlists.
Don't worry, no personal data is collected or shared.
Invite friends to contribute to the shared playlist.
Add songs to the shared playlist.


the Clayton Case
Lana Clayton, 52, Clayton (a nurse Killed aged 52) killed
in the victims food(s) victim's food and drinks by Lana unbeknownst to the victim
have was having an affair
she also needed was in desperate need of some money
their Their house ... single lady and her husband's life insurance may have acted as a tantalizing temptation to the lady.
schoked shocked
her his family
missused misused
that's the think which make what prompted me to choose this news


|
https://news.science360.gov/obj/story/73942d6f-33f5-466f-aaa9-1bdc108557b0/scientists-move-closer-developing-therapeutic-window-brain |
|
https://ucrtoday.ucr.edu/38537 |
|
http://www.novuslight.com/scientists-closer-to-developing-therapeutic-window-to-brain_N5827.html |
|
http://www.vocativ.com/339450/a-clear-skull-implant-could-let-doctors-shoot-lasers-into-the-brain/ |
|
http://optics.org/news/7/7/21 |
|
https://www.sciencedaily.com/releases/2016/07/160712133916.htm |


new TileSprite(game, x, y, width, height, key, frame)
A TileSprite is a Sprite that has a repeating texture. The texture can be scrolled and scaled and will automatically wrap on the edges as it does so. Please note that TileSprites, as with normal Sprites, have no input handler or physics bodies by default. Both need enabling.
Parameters:
| Name | Type | Description |
|---|---|---|
game |
Phaser.Game | A reference to the currently running game. |
x |
number | The x coordinate (in world space) to position the TileSprite at. |
y |
number | The y coordinate (in world space) to position the TileSprite at. |
width |
number | The width of the TileSprite. |
height |
number | The height of the TileSprite. |
key |
string | Phaser.RenderTexture | Phaser.BitmapData | PIXI.Texture | This is the image or texture used by the TileSprite during rendering. It can be a string which is a reference to the Cache entry, or an instance of a RenderTexture or PIXI.Texture. |
frame |
string | number | If this TileSprite is using part of a sprite sheet or texture atlas you can specify the exact frame to use by giving a string or numeric index. |
- Source:
Members
-
angle
-
Indicates the rotation of the Sprite, in degrees, from its original orientation. Values from 0 to 180 represent clockwise rotation; values from 0 to -180 represent counterclockwise rotation. Values outside this range are added to or subtracted from 360 to obtain a value within the range. For example, the statement player.angle = 450 is the same as player.angle = 90. If you wish to work in radians instead of degrees use the property Sprite.rotation instead. Working in radians is also a little faster as it doesn't have to convert the angle.
- Source:
Properties:
Name Type Description angle
number The angle of this Sprite in degrees.
-
animations
-
- Source:
Properties:
Name Type Description animations
Phaser.AnimationManager This manages animations of the sprite. You can modify animations through it (see Phaser.AnimationManager)
-
body
-
By default Sprites won't add themselves to any physics system and their physics body will be
null
. To enable them for physics you need to callgame.physics.enable(sprite, system)
wheresprite
is this object andsystem
is the Physics system you want to use to manage this body. Once enabled you can access all physics related properties viaSprite.body
.Important: Enabling a Sprite for P2 or Ninja physics will automatically set
Sprite.anchor
to 0.5 so the physics body is centered on the Sprite. If you need a different result then adjust or re-create the Body shape offsets manually, and/or reset the anchor after enabling physics.- Default Value:
- null
- Source:
Properties:
Name Type Description body
Phaser.Physics.Arcade.Body | Phaser.Physics.P2.Body | Phaser.Physics.Ninja.Body | null -
cameraOffset
-
- Source:
Properties:
Name Type Description cameraOffset
Phaser.Point If this object is fixedToCamera then this stores the x/y offset that its drawn at, from the top-left of the camera view.
-
events
-
- Source:
Properties:
Name Type Description events
Phaser.Events The Events you can subscribe to that are dispatched when certain things happen on this Sprite or its components.
-
exists
-
TileSprite.exists controls if the core game loop and physics update this TileSprite or not. When you set TileSprite.exists to false it will remove its Body from the physics world (if it has one) and also set TileSprite.visible to false. Setting TileSprite.exists to true will re-add the Body to the physics world (if it has a body) and set TileSprite.visible to true.
- Source:
Properties:
Name Type Description exists
boolean If the TileSprite is processed by the core game update and physics.
-
fixedToCamera
-
An TileSprite that is fixed to the camera uses its x/y coordinates as offsets from the top left of the camera. These are stored in TileSprite.cameraOffset. Note that the cameraOffset values are in addition to any parent in the display list. So if this TileSprite was in a Group that has x: 200, then this will be added to the cameraOffset.x
- Source:
Properties:
Name Type Description fixedToCamera
boolean Set to true to fix this TileSprite to the Camera at its current world coordinates.
-
frame
-
- Source:
Properties:
Name Type Description frame
number Gets or sets the current frame index and updates the Texture Cache for display.
-
frameName
-
- Source:
Properties:
Name Type Description frameName
string Gets or sets the current frame name and updates the Texture Cache for display.
-
game
-
- Source:
Properties:
Name Type Description game
Phaser.Game A reference to the currently running Game.
-
input
-
- Source:
Properties:
Name Type Description input
Phaser.InputHandler | null The Input Handler for this object. Needs to be enabled with image.inputEnabled = true before you can use it.
-
inputEnabled
-
By default a TileSprite won't process any input events at all. By setting inputEnabled to true the Phaser.InputHandler is activated for this object and it will then start to process click/touch events and more.
- Source:
Properties:
Name Type Description inputEnabled
boolean Set to true to allow this object to receive input events.
-
key
-
- Source:
Properties:
Name Type Description key
string | Phaser.RenderTexture | Phaser.BitmapData | PIXI.Texture This is the image or texture used by the Sprite during rendering. It can be a string which is a reference to the Cache entry, or an instance of a RenderTexture, BitmapData or PIXI.Texture.
-
name
-
- Source:
Properties:
Name Type Description name
string The user defined name given to this Sprite.
-
<readonly> type
-
- Source:
Properties:
Name Type Description type
number The const type of this object.
-
world
-
- Source:
Properties:
Name Type Description world
Phaser.Point The world coordinates of this Sprite. This differs from the x/y coordinates which are relative to the Sprites container.
-
z
-
- Source:
Properties:
Name Type Description z
number The z-depth value of this object within its Group (remember the World is a Group as well). No two objects in a Group can have the same z value.
Methods
-
autoScroll()
-
Sets this TileSprite to automatically scroll in the given direction until stopped via TileSprite.stopScroll(). The scroll speed is specified in pixels per second. A negative x value will scroll to the left. A positive x value will scroll to the right. A negative y value will scroll up. A positive y value will scroll down.
- Source:
-
destroy(destroyChildren)
-
Destroys the TileSprite. This removes it from its parent group, destroys the event and animation handlers if present and nulls its reference to game, freeing it up for garbage collection.
Parameters:
Name Type Argument Default Description destroyChildren
boolean <optional>
true Should every child of this object have its destroy method called?
- Source:
-
loadTexture(key, frame)
-
Changes the Texture the TileSprite is using entirely. The old texture is removed and the new one is referenced or fetched from the Cache. This causes a WebGL texture update, so use sparingly or in low-intensity portions of your game.
Parameters:
Name Type Description key
string | Phaser.RenderTexture | Phaser.BitmapData | PIXI.Texture This is the image or texture used by the Sprite during rendering. It can be a string which is a reference to the Cache entry, or an instance of a RenderTexture, BitmapData or PIXI.Texture.
frame
string | number If this Sprite is using part of a sprite sheet or texture atlas you can specify the exact frame to use by giving a string or numeric index.
- Source:
-
play(name, frameRate, loop, killOnComplete) → {Phaser.Animation}
-
Play an animation based on the given key. The animation should previously have been added via sprite.animations.add() If the requested animation is already playing this request will be ignored. If you need to reset an already running animation do so directly on the Animation object itself.
Parameters:
Name Type Argument Default Description name
string The name of the animation to be played, e.g. "fire", "walk", "jump".
frameRate
number <optional>
null The framerate to play the animation at. The speed is given in frames per second. If not provided the previously set frameRate of the Animation is used.
loop
boolean <optional>
false Should the animation be looped after playback. If not provided the previously set loop value of the Animation is used.
killOnComplete
boolean <optional>
false If set to true when the animation completes (only happens if loop=false) the parent Sprite will be killed.
- Source:
Returns:
A reference to playing Animation instance.
- Type
- Phaser.Animation
-
postUpdate()
-
Internal function called by the World postUpdate cycle.
- Source:
-
preUpdate()
-
Automatically called by World.preUpdate.
- Source:
-
stopScroll()
-
Stops an automatically scrolling TileSprite.
- Source:
-
update()
-
Override and use this function in your own custom objects to handle any update requirements you may have.
- Source:


$299
Save 30% today
Original price $399
Create custom landing pages with Omega that converts more visitors than any website. With lots of unique blocks, you can easily build a page without coding.
50+ Unique Design Blocks
Multiple Layouts
Mobile First Design
Fully Responsive
Bootstrap 4 Framework
Humanly Support
Lifetime Updates
Rich Documentation
Create custom landing pages with Omega that converts more visitors than any website. With lots of unique blocks, you can easily build a page without coding.
Create custom landing pages with Omega that converts more visitors than any website. With lots of unique blocks, you can easily build a page without coding.
Try it nowCreate custom landing pages with Omega that converts more visitors than any website.
OMG! I cannot believe that I have got a brand new landing page after getting Omega. It was super easy to edit and publish.
OMG! I cannot believe that I have got a brand new landing page after getting Omega. It was super easy to edit and publish.


A new plugin, Spincast Hotswap, helps you configure hot swapping (sometimes called "hot reloading") in your application.
The plugin uses HotswapAgent + DCEVM to get the best Java classes redefinitions solution available for free! The modifications you make to your Java source code during development are immediately picked up, without the need to restart the application.
In addition to the automatic classes redefinitions provided by HotswapAgent, you can also register listeners to be called when modifications are made. By using such listeners, you can run custom code to react to modifications (by clearing cache, refreshing routes, refreshing configurations, etc.).
Those new features lead to a very pleasant and fast development experience.


  The night when music brings you to life, it’s the ProNites.
If you wish for loud music and high octane action, this is the place to be. Watch, as each dancer steps up to prove thyself, and let the high adrenaline action of each move leave you awestruck and begging for more.
Talented singers battle it out with their voices, both high and low. Let the amazing feeling of overwhelming breathlessness take over you, with their magnetic voices. This is the one to sit back, relax and enjoy.
It’s the night, for the sight. This is one night when you get mesmerized by the immense beauty, all at one place. Watch them, as they talk the talk, and walk the walk.
Participants have to eat their way across the competition in one of the most compelling food challenges. This ultimate challenge puts you up against the mighty food that can beat the best out of anyone. Be ready to face anything that comes on your plate! Remember, the person who eats the most, wins!
Hoops(Basketball: 5+5)
Dribble. Pass. Shoot. Repeat.
A tournament spread over three days with knockouts, semis and the finals.
Kickoff(Futsal: 5+2)
A football game with 5+2 players.
Gully Cricket (5+2)
A fusion of Cricket in the backstreets and stadium cricket, this form of Gully Cricket will pose new twists to all the Cricket-lovers.
Test your Sherlockian skills to solve a murder.
Round 1: Case Files
Round 2: Live action role play
Tech Tonic Tremors
The event where everybody dances on the tunes of the DJs. The most energetic and the most lively event.
Tamasha
Fancy yourself as the upcoming star in the making? This is your quintessential ‘Nukkad Natak’ or ‘Street Play’ event with performances that promise to be loud, fun and impactful!
MUN
An educational simulation and/or academic competition in which students can learn about diplomacy, international relations, and the United Nations.
Lens Legends
Showcase your photography skills in this event. You don't have to be a professional photographer or own a DSLR to participate!
Street Beats
Feel the music with hip-hop at your heart, b-boying in your soul, crunching in your mind, tapping in your legs, and show your rivals that this is your street.
Dizzy Sports
Football, cricket, basketball: any sport that you know- just come, play and enjoy!
Ghetto Blasters
A beatboxing event for all the beatboxing enthusiasts out there!
'Reverb' is the annual cultural extravaganza organized by SIT. Reverb, short for Reverberation, is the undue prolongation of sound in a particular space after the original sound is removed. This isparticularly true when the stage is set, the sound is loud, and the energy is high.
This exquisite extravaganza drifts its brilliancy across the city of Pune, and the country. Just like Reverberation of sound, these three days echo around this alma mater for years to come. Above all, one thing has become very clear: SIT is the place to be, Reverb is the fest to see.
Symbiosis Institute of Technology Symbiosis International University, Near Lupin Research Park, Gram: Lavale, Tal: Mulshi, Pune 412 115
Phone:<PHONE_NUMBER>
Mobile:<PHONE_NUMBER>
Fax:<PHONE_NUMBER>


Please follow these 2 steps to join the webapp classroom:
1. register yourself with the webapp by going to bit.ly/henupr
2. click on the following link, then follow instructions provided.
Before emailing your teacher for help please download and read through this pdf document where instructions will be provided.


--- layout: post title: ! 'Bridal Wars: Your pick' tags: - Poll status: publish type: post published: true meta: _edit_last: '2' _yoast_wpseo_linkdex: '0' _thumbnail_id: '4963' _yoast_wpseo_focuskw: '' _yoast_wpseo_title: '' _yoast_wpseo_metadesc: '' _yoast_wpseo_metakeywords: '' _yoast_wpseo_meta-robots-noindex: '0' _yoast_wpseo_meta-robots-nofollow: '0' _yoast_wpseo_meta-robots-adv: none _yoast_wpseo_sitemap-include: ! '-' _yoast_wpseo_sitemap-prio: ! '-' _yoast_wpseo_canonical: '' _yoast_wpseo_redirect: '' ---
November the season of love of course in India for those who are about to enter the institution of marriage, and for those who lovingly cherish their moments of the past, present and future. I shall be completing the most lovely 5 years of my life very soon and these pics made me nostalgic.
Both the ladies look gorgeous, but my vote for Makeup goes to Dia, and dress(no marks for guessing) to Chitrangada. Somehow Katrina's picture looks very rustic and doesn't bring any emotions to me :sad:
[poll id="5"]


Hi all,
i have 2 NanodeRF.
the first is working fine using emonTX --> emoncms
The second for other experiments :--)))
Now : LAst year i bought a Wattcher , this is a product that is able to read the ring of the enrgyMeter of the House and send trough a radio signal of 868MHZ directly to the receiver.
Wattcher is composed with 1 sender 1 receiver.
here a link of the product --> https://www.wattcher.nl/en
My question : the nanodeRF is also working at 868 MHZ , is here a possibility to receive the signal from Wattcher ? I need only the pulse that will be generate every turn from Energy Ring.
Is here an existing sketch that is able to scan and retrieve wich nodegroups where used ?
Thank you
Bye
Remo
Re: Wattcher Energy Meter and NanodeRF it's Possible ?
Have you looked on JeeLabs? There is much good information there about the RFM12 radio system.
Re: Wattcher Energy Meter and NanodeRF it's Possible ?
I also touched on it in a PC Pro column: http://www.pcpro.co.uk/realworld/380878/hack-your-own-radio-transmitter
(Sorry for the clumsy title - that's the only bit I didn't write - SEO apparently!!!!)
P.
Re: Wattcher Energy Meter and NanodeRF it's Possible ?
Thank you all for the Infos :
The RF12Demo seems to be a good approach to find out the sender of the Wattcher.
I disconnected the emontx to avoid intereferences , i started the rf12demo sketch .
Now i become this inputs below , i don't know if that is reandoms generated values or it's really my wattcher sender !!
? 173 179 54 60 219 48 227 233 222 158 216 129 131 183 251 197 142 82 174 230 131
? 48 73 51 84 180 8 226 249 163 232 94 71 172 197 62 112 10 129 8 104 185
? 16 20 64 242 159 15 78 155 142 8 46 255 253 215 49 219 122 94 9 1 152
? 23 93 21 53 34 129 63 69 245 26 84 213 77 22 195 48 48 3 74 71 211
I'm seraching for a tutorial to understanding this long values list.
At the moment i thank you all again for the good info.
Saluti
Remo
Re: Wattcher Energy Meter and NanodeRF it's Possible ?
Hi again,
I can assume that, after receiving the values like
---------------------
? 173 179 54 60 219 48 227 233 222 158 216 129 131 183 251 197 142 82 174 230 131
---------------------
The NanodeRF is receiving something from Wattcher?
(The Other NanodeRF and Emontx are disconnected).
Finally if this this above is True , i need only 1 pulse that the Wattcher send to NanodeRF.
So i'm able to calculate the Actual Power like :
EnergyMeter Coef = 1000 watt / 120 turn
Time elapsed for 1 turn in Hour (for Example 17 sec.)
Finally Kw = (1000/120) / 0.004722222) --> 1764 Watt --> 1.76 Kw
Is this possible ?
Saluti and Bye
Remo
Re: Wattcher Energy Meter and NanodeRF it's Possible ?
Your first problem is to prove that the numbers you are seeing really are coming from your Wattcher. Can you change the numbers by doing things to it? - like making and stopping pulses? If you take the battery out, do the numbers stop? Until you have found that out, anything else you even think about is a waste of time.
Now I am guessing: If I wanted to design something that could see a induction disc meter going round or a LED in an electronic meter flashing, I would use light - and probably infra-red.  If you put some white paper in front of it to reflect any light back, what happens? These are the sort of experiments you must do to find out what the numbers mean.
Re: Wattcher Energy Meter and NanodeRF it's Possible ?
Hi Robert,
i try this evening to take out the battery, and (hopelly) here must no coming any sort of signals.
The Wattcher (sender Side) have a IR Sensor, because this sender is mounted in a dark cabinet.
But as first i try to disconnect all.
thank you
Bye
Remo
Re: Wattcher Energy Meter and NanodeRF it's Possible ?
no chance,
i have disconnected all (wattcher Sender / Receiver)
this value are generated randomly (Using the RF12 Demo).
I think i must look for 2 Xbee wireless + 2 Xbee Shield and 1 reflection Sensor.
Starting with a new projekt.
thank all for your help
Saluti
Remo


Every new release of OpenCOR (be it a snapshot or an official release) should pass the following functional tests.
To be completed...
please let us know if you think a particular functional test is missing from the list above.
Various CellML files are available for functional testing. They can be found under [OpenCOR]/doc/developer/models
, as well as online:
[OpenCOR]/doc/developer/models/definite_integral_ode_model.cellml
[OpenCOR]/doc/developer/models/no_voi_model.cellml
[OpenCOR]/doc/developer/models/overconstrained_ode_model.cellml
[OpenCOR]/doc/developer/models/underconstrained_dae_model.cellml
[OpenCOR]/doc/developer/models/underconstrained_ode_model.cellml
[OpenCOR]/doc/developer/models/unsuitably_constrained_ode_model.cellml


{% include "includes/validation-error-messages.html" %}
Return visitors
Sign in to check progress on a claim or apply without entering all of your information again.
If you are visiting a different prisoner or they’ve moved prisons, start a new claim.


--- layout: post title: Enabling Touch events in a desktop browser permalink: enabling-touch-events-in-a-desktop-browser/ date: 2013-04-24 15:04:46.000000000 +08:00 categories: - coding - Copy Paste - howto - tablet tags: - chrome flag to enable touch - enable touch in desktop - fingerblast to handle desktop event - touch event in chrome status: publish type: post published: true meta: _edit_last: '2' _thumbnail_id: '949' _wpas_done_all: '1' _wpas_mess: Enabling Touch events in a desktop browser _wpas_skip_1611607: '1' _wpas_skip_2452381: '1' _wpas_skip_2203490: '1' _wpas_skip_2452385: '1' _wpas_skip_2452386: '1' dsq_thread_id: '3004369070' cleaned: true ---
When you are developing a mobile site, you must keep in mind that the devices with touchscreen input has entirely different set of events compared to your computer which is getting its events from the mouse.
However, debugging and checking your site in your phone is not that easy and would be sometimes uncomfortable. This is because all of your web developer tools is in your computer. Sometimes, you also need to make sure that certain function will work in case someone visited your mobile site. The trick here is to, map each touch events to the appropriate events for the desktop browser.
If you just want to do it in your local browser (not to all visitors of the site), you could just do this in your Google Chrome browser:
But if you want to have this enabled in all visitors, obviously, you cant ask all of them one by one to tweak their Chrome setting. What you can do is use the fingerblast.js library to map each touch event.
To use fingerblast.js, all you need to do is of course load it in your page, then right before the closing body tag, put this:
This will create a new fingerblast object and set listeners to the body tag.
Note that at the time of writing, this is only possible with Chrome browser. If you are looking for some kind of cross-browser compatibility, you should start considering porting your application to jQuery Mobile.


Join us in the nation's cpaitol for the 2020 DCI conference. Featuring some of the industries top leaders on branding, creative expression, and interaction design.
Pum Lefebure is the Co-founder and Chief Creative Officer of Design Army in Washington D.C. Her attention to detail and distinct art direction have enabled DESIGN ARMY to develop unique branding, corporate identity, and conceptual designs for clients such as Adobe, Ritz Carlton, Lucas Film, and more.
Val Head is an author and Senior Design Advocate for Adobe. She specializes in UX and UI animation. She is the author of Designing Interface Animation and The Pocket Guide to CSS Animation. She has a passion for unpacking and teaching others about the power of animation. She is enthralled with speaking and teaching at conferences all over the world.
John Maeda is a designer and technologist. He is the Global Head of Computational Design and Inclusion at Automatic. Maeda is known for his work on the intersection between design, technology, and leadership. Maeda is the former president of the Rhode Island School of Design.
Tim Brown is the former CEO of IDEO, the global innovation and design firm. He is a leading voice on design thinking and its role in society. Under Brown’s lead IDEO became a leader not just in building products but in building services. Brown is also an active member of TED, and the World Economic Forum.
Massimo Banzi is an interaction designer and professor. He is the co-founder of the Arduino Project an open-source hardware and software company that designs micro-controller kits for digital device construction. Banzi has served as a consultant for Whirlpool, V&A Museum, Adidas, Prada, and more. He is also a professor of interaction design at SUPSI Lugano in Switzerland and CIID in Copenhagen.
Erika Hall is the co-founder and Director of Strategy at Mule and has been working in the web design world since the late 20th century. She is the author of Conversational Design and Just Enough Research. Hall often writes about the importance of natural language in user interfaces, and is an advocate for cross-disciplinary collaboration.
Roman Mars is the host and creator of 99% Invisible, a podcast about design and architecture. Named one of 100 Most Creative People by Fast Company, Mars has led 99% Invisible to be one of the most popular podcasts in the world. He is also the co-founder of Radiotopia, a collective of independent podcasts.
Dana Chisnell is the co-founder of the Center for Civic Design. She has worked with numerous organizations to improve their customer experiences. She is a pioneer in civic design, and takes this experience with her wherever she goes. She is known for her deep understanding of elderly usability systems and Web content accessibility guidelines.


--- title: Reporting with Shiny linktitle: Reporting with Shiny toc: true type: docs date: "2019-05-05T00:00:00+01:00" draft: false menu: dat_sci: parent: III. Reporting weight: 16 # Prev/next pager order (if `docs_section_pager` enabled in `params.toml`) weight: 15 ---
Under construction. Coming soon …


This is Just a Lazy Dumb component residing in Lazy Component.
Javascript code is loaded for this component along with LazyModule code
LazyDumbComponent is declared in LazyModule and hence is available for all components inside module
So, <labs-lazy-dumb> is inside lazy.component.html, but it is not part of directives of LazyComponent decorator.


{% extends "layout.html" %} {% block page_title %} Design patterns {% endblock %} {% block content %} {% include "includes/phase_banner_alpha.html" %} Check-before-start patterns Patterns for before you start to apply for or register something: Check now Showing rules To-do list {% endblock %}
Patterns for before you start to apply for or register something:


MinecraftID (formerly MCAuth) provides an easy way to connect your User's account to their Minecraft Username/Account.
Once you request an authentication via minecraft.id,
your users simply need to log into their Minecraft account and join the authentication server (mc.minecraft.id or just minecraft.id)


This is a live demo of
https://github.com/amrox/django-api-example
. Visit there for more information.