@@ -70,6 +70,17 @@ def read_csv(
7070 MoveDataFrameAbstract subclass
7171 Trajectory data
7272
73+ Examples
74+ --------
75+ >>> from pymove.utils.trajectories import read_csv
76+ >>> move_df = read_csv('...geolife_sample.csv')
77+ >>> move_df.head()
78+ lat lon datetime id
79+ 0 39.984094 116.319236 2008-10-23 05:53:05 1
80+ 1 39.984198 116.319322 2008-10-23 05:53:06 1
81+ 2 39.984224 116.319402 2008-10-23 05:53:11 1
82+ 3 39.984211 116.319389 2008-10-23 05:53:16 1
83+ 4 39.984217 116.319422 2008-10-23 05:53:21 1
7384 """
7485 data = _read_csv (
7586 filepath_or_buffer ,
@@ -95,6 +106,12 @@ def invert_dict(d: Dict) -> Dict:
95106 dict
96107 inverted dict
97108
109+ Examples
110+ --------
111+ >>> from pymove.utils.trajectories import invert_dict
112+ >>> traj_dict = {'lat':39.984094, 'lon':116.319236}
113+ >>> invert_dict(traj_dict)
114+ {39.984094: 'lat', 116.319236: 'lon'} <class 'dict'>
98115 """
99116 return {v : k for k , v in d .items ()}
100117
@@ -125,10 +142,10 @@ def flatten_dict(
125142
126143 Examples
127144 --------
128- >>> d = { 'a': 1, 'b': { 'c': 2, 'd': 3}}
129- >>> flatten_dict(d)
130- { 'a': 1 , 'b_c': 2, 'b_d': 3 }
131-
145+ >>> from pymove.utils.trajectories import flatten_dict
146+ >>> traj_dict = {'lat':39.984094, 'lon':116.319236}
147+ >>> flatten_dict(traj_dict , 'x')
148+ {'x_lat': 39.984094, 'x_lon': 116.319236} <class 'dict'>
132149 """
133150 if not isinstance (d , dict ):
134151 return {parent_key : d }
@@ -164,12 +181,28 @@ def flatten_columns(data: DataFrame, columns: List) -> DataFrame:
164181
165182 Examples
166183 --------
167- >>> d = {'a': 1, 'b': {'c': 2, 'd': 3}}
168- >>>> data = pd.DataFrame({'col1': [1], 'col2': [d]})
169- >>>> flatten_columns(data, ['col2'])
170- col1 col2_b_d col2_a col2_b_c
171- 0 1 3 1 2
172-
184+ >>> from pymove.utils.trajectories import flatten_columns
185+ >>> move_df
186+ lat lon datetime id dict_column
187+ 0 39.984094 116.319236 2008-10-23 05:53:05 1 {'a': 1}
188+ 1 39.984198 116.319322 2008-10-23 05:53:06 1 {'b': 2}
189+ 2 39.984224 116.319402 2008-10-23 05:53:11 1 {'c': 3}
190+ 3 39.984211 116.319389 2008-10-23 05:53:16 1 {'d': 4}
191+ 4 39.984217 116.319422 2008-10-23 05:53:21 1 {'e': 5}
192+ >>> flatten_columns(moveDf, columns = 'dict_column')
193+ lat lon datetime id
194+ 0 39.984094 116.319236 2008-10-23 05:53:05 1
195+ 1 39.984198 116.319322 2008-10-23 05:53:06 1
196+ 2 39.984224 116.319402 2008-10-23 05:53:11 1
197+ 3 39.984211 116.319389 2008-10-23 05:53:16 1
198+ 4 39.984217 116.319422 2008-10-23 05:53:21 1
199+
200+ dict_column_b dict_column_d dict_column_e dict_column_a dict_column_c
201+ 0 NaN NaN NaN 1.0 NaN
202+ 1 2.0 NaN NaN NaN NaN
203+ 2 NaN NaN NaN NaN 3.0
204+ 3 NaN 4.0 NaN NaN NaN
205+ 4 NaN NaN 5.0 NaN NaN
173206 """
174207 data = data .copy ()
175208 if not isinstance (columns , list ):
@@ -218,6 +251,16 @@ def shift(
218251 ----------
219252 https://stackoverflow.com/questions/30399534/shift-elements-in-a-numpy-array
220253
254+ Examples
255+ --------
256+ >>> from pymove.utils.trajectories import shift
257+ >>> array = [1,2,3,4,5,6,7]
258+ >>> print(shift(array, 1), type(shift(array, 1)))
259+ [0 1 2 3 4 5 6] <class 'numpy.ndarray'>
260+ >>> print(shift(array, 2), type(shift(array, 2)))
261+ [0 0 1 2 3 4 5] <class 'numpy.ndarray'>
262+ >>> print(shift(array, 3), type(shift(array, 3)))
263+ [0 0 0 1 2 3 4] <class 'numpy.ndarray'>
221264 """
222265 result = np .empty_like (arr )
223266 if fill_value is None :
@@ -254,6 +297,18 @@ def fill_list_with_new_values(original_list: List, new_list_values: List):
254297 new_list_values : list.
255298 The list from which elements will be copied
256299
300+ Returns
301+ -------
302+ The original list with the content of a secondary list
303+
304+ Example
305+ -------
306+ >>> from pymove.utils.trajectories import fill_list_with_new_values
307+ >>> original_list = [4,3,2,1,0]
308+ >>> new_list = [9,8,7,6,5]
309+ >>> fill_list_with_new_values(original_list, new_list)
310+ >>> print(original_list, type(original_list))
311+ ['oveD'] <class 'numpy.ndarray'>[9, 8, 7, 6, 5] <class 'list'>
257312 """
258313 n = len (new_list_values )
259314 original_list [:n ] = new_list_values
@@ -272,6 +327,16 @@ def object_for_array(object_: Text) -> ndarray:
272327 -------
273328 array
274329 object converted to a list
330+
331+ Examples
332+ --------
333+ >>> from pymove.utils.trajectories import object_for_array
334+ >>> print(object_for_array('lat'), type(object_for_array('lat')))
335+ ['a'] <class 'numpy.ndarray'>
336+ >>> print(object_for_array('move'), type(object_for_array('move')))
337+ ['ov'] <class 'numpy.ndarray'>
338+ >>> print(object_for_array('moveDf'), type(object_for_array('moveDf')))
339+ ['oveD'] <class 'numpy.ndarray'>
275340 """
276341 if object_ is None :
277342 return object_
@@ -295,6 +360,29 @@ def column_to_array(data: DataFrame, column: Text):
295360
296361 column : str
297362 Label of data referring to the column for conversion
363+
364+ Returns
365+ -------
366+ dataframe
367+ Dataframe with the new column...
368+
369+ Example
370+ -------
371+ >>> from pymove.utils.trajectories import column_to_array
372+ >>> move_df
373+ lat lon datetime id list_column
374+ 0 39.984094 116.319236 2008-10-23 05:53:05 1 [1,2]
375+ 1 39.984198 116.319322 2008-10-23 05:53:06 1 [3,4]
376+ 2 39.984224 116.319402 2008-10-23 05:53:11 1 [5,6]
377+ 3 39.984211 116.319389 2008-10-23 05:53:16 1 [7,8]
378+ 4 39.984217 116.319422 2008-10-23 05:53:21 1 [9,10]
379+ >>> column_to_array(moveDf, column = 'list_column')
380+ lat lon datetime id list_column
381+ 0 39.984094 116.319236 2008-10-23 05:53:05 1 [1.0,2.0]
382+ 1 39.984198 116.319322 2008-10-23 05:53:06 1 [3.0,4.0]
383+ 2 39.984224 116.319402 2008-10-23 05:53:11 1 [5.0,6.0]
384+ 3 39.984211 116.319389 2008-10-23 05:53:16 1 [7.0,8.0]
385+ 4 39.984217 116.319422 2008-10-23 05:53:21 1 [9.0,10.0]
298386 """
299387 data = data .copy ()
300388 if column not in data :
0 commit comments