def test_without_tags_and_fields_with_nan(self): from influxdb_client.extras import pd, np df = pd.DataFrame({ 'a': np.arange(0., 3.), 'b': [0., np.nan, 1.], }).set_index( pd.to_datetime( ['2021-01-01 0:00', '2021-01-01 0:01', '2021-01-01 0:02'])) points = data_frame_to_list_of_points( data_frame=df, data_frame_measurement_name="test", point_settings=PointSettings()) self.assertEqual(3, len(points)) self.assertEqual("test a=0.0,b=0.0 1609459200000000000", points[0]) self.assertEqual("test a=1.0 1609459260000000000", points[1]) self.assertEqual("test a=2.0,b=1.0 1609459320000000000", points[2])
def test_convert_data_frame(self): from influxdb_client.extras import pd, np num_rows=1500000 col_data={ 'time': np.arange(0, num_rows, 1, dtype=int), 'col1': np.random.choice(['test_a', 'test_b', 'test_c'], size=(num_rows,)), } for n in range(2, 9): col_data[f'col{n}'] = np.random.rand(num_rows) data_frame = pd.DataFrame(data=col_data) print(data_frame) start = time.time() data_frame_to_list_of_points(data_frame, PointSettings(), data_frame_measurement_name='h2o_feet', data_frame_tag_columns=['location']) print("Time elapsed: ", (time.time() - start))
""" url = 'http://localhost:8086' token = 'my-token' org = 'my-org' bucket = 'my-bucket' """ Generate Dataframe """ print() print("=== Generating DataFrame ===") print() dataframe_rows_count = 150_000 col_data = { 'time': np.arange(0, dataframe_rows_count, 1, dtype=int), 'tag': np.random.choice(['tag_a', 'tag_b', 'test_c'], size=(dataframe_rows_count, )), } for n in range(2, 2999): col_data[f'col{n}'] = random.randint(1, 10) data_frame = pd.DataFrame(data=col_data).set_index('time') print(data_frame) """ Ingest DataFrame """ print() print("=== Ingesting DataFrame via batching API ===") print()