Published on 7 July 2018
random data analysis and visualization :)
I was developing one android app for storing bank account details securely. One of the fuction I was thinking of adding was to search bank IFSC code. For this purpose I needed database of all Indian banks who have valid IFSC code. This code is imporant for performing NEFT or RTGS transactions. In search of such database I scaned Reserve Bank of India’s (RBI) website. I did find that database however total size of that database was more than 10 MB. Hence it was not a good idea to embbed this data into app itself. On top of that, I need to update this database in future as RBI approves new bank branches. Finally I found good API for achieving this. After that when I was about to delete all the files related to downloaded data, my inner data scientist woke up and I decided to analyze this data further.
Developers at RazorPay have compiled all of the RBI data into properly labeled dataset. This made my job even easier. I wrote simple python
script to analyze this dataset. This dataset had 141996 entries 1 on 7 July 2018 (Note: all further analysis is done on data available on 7 July 2018.).
This itself is very big number. This suggest there are on average 3944 bank branches per state (29 states + 7 union territories). There is 1 bank branch per 9325 citizens. This is significantly higher number compare to United States. It had 80,227 FDIC-insured commercial bank in 2016 2. That comes down to only 1 bank per 4682 citizens. Although this statistics is 2 year old, going by average growth in US banks in past 10 years 2, we can assume this number won’t change drastically for 2018. Now we can analyze this data in little bit more details.
First, I checked which bank has most number of branches in India.
![]() |
---|
Fig 1: Bank Wise Distribution of Indian Banks |
As expected, with 26222 branches all over the India, State Bank of India (SBI) has most number of branches (Fig 1). It is 18.46 % of all bank branches. These top 10 banks accounts for 53.10% of total Indian bank branches.
Next I checked how bank branches are distributed geographically.
![]() |
---|
Fig 2: State Wise Distribution of Indian Banks |
Fig 2 shows top 10 states (or union territories) who has most number of bank branches. With 18220 branches Maharashtra tops this list. This is 12.83% of total bank branches in India. This is 88.25% of total branches in India.
However this can be misleading as population of these states are very different. To understand which state has more number of bank branches per person, I used population database 3. I just normalized number of bank branches with its population (Fig 3).
![]() |
---|
Fig 3: Top 10 state who has highest number of bank branches per person. |
Fig 4 suggest that Chandigarh has highest number of bank branches per person (Branches: 1990, Population: 1110820 3).
Generally we presume bank branches will be concentrated in metro cities. To test this hypothesis I checked how is the city wise distribution.
![]() |
---|
Fig 4: City wise distribution of bank branches. |
Indeed they are concentrated in metro cities. Fig 4 shows exactly same trend. As I was expecting most number of banks are present in Indias financial capital, Mumbai 4, with 3132 bank branches which is 17.18% of all bank branches in Maharashtra. National capital Delhi 5 was on second place with 3047 bank branches. These top 10 cities have 16.18% of India’s total bank branches. Finally I checked how different banks are distributed within these top 10 cities.
![]() |
---|
Fig 5: City wise distribution of branches of top banks. |
Code used in the above analysis can be found here.
(Header image is captured by Rohit Suratekar in Poland Warsaw)