fuyb1992
es_pandas
Python

Read, write and update large scale pandas DataFrame with Elasticsearch

Last updated Mar 15, 2026
34
Stars
11
Forks
5
Issues
0
Stars/day
Attention Score
19
Language breakdown
Python 100.0%
Files click to expand
README

es_pandas

Build Status 996.icu LICENSE PyPi version Downloads

Read, write and update large scale pandas DataFrame with ElasticSearch.

Requirements

This package should work on Python3(>=3.4) and ElasticSearch should be version 5.x, 6.x or 7.x.

Installation The package is hosted on PyPi and can be installed with pip:

pip install es_pandas

Deprecation Notice

Supporting of ElasticSearch 5.x will by deprecated in future version.

Usage

import time

import pandas as pd

from espandas import espandas

Information of es cluseter

es_host = 'localhost:9200' index = 'demo'

crete es_pandas instance

ep = espandas(eshost)

Example data frame

df = pd.DataFrame({'Num': [x for x in range(100000)]}) df['Alpha'] = 'Hello' df['Date'] = pd.datetime.now()

init template if you want

doc_type = 'demo' ep.initestmpl(df, doc_type)

Example of write data to es, use the template you create

ep.toes(df, index, doctype=doctype, threadcount=2, chunk_size=10000)

set useindex=True if you want to use DataFrame index as records' id

ep.toes(df, index, doctype=doctype, useindex=True, threadcount=2, chunksize=10000)

delete records from es

ep.toes(df.iloc[5000:], index, doctype=doctype, optype='delete', threadcount=2, chunk_size=10000)

Update doc by doc _id

df.iloc[:1000, 1] = 'Bye' df.iloc[:1000, 2] = pd.datetime.now() ep.toes(df.iloc[:1000, 1:], index, doctype=doctype, op_type='update')

Example of read data from es

df = ep.to_pandas(index) print(df.head())

return certain fields in es

heads = ['Num', 'Date'] df = ep.to_pandas(index, heads=heads) print(df.head())

set certain columns dtype

dtype = {'Num': 'float', 'Alpha': object} df = ep.to_pandas(index, dtype=dtype) print(df.dtypes)

infer dtype from es template

df = ep.topandas(index, inferdtype=True) print(df.dtypes)

use query_sql parameter if you want to do query in sql

Example of write data to es with pandas.io.json

ep.toes(df, index, doctype=doctype, usepandasjson=True, threadcount=2, chunk_size=10000) print('write es doc with pandas.io.json finished')
🔗 More in this category

© 2026 GitRepoTrend · fuyb1992/es_pandas · Updated daily from GitHub