Python Forum

Full Version: ValueError: Length mismatch: Expected axis has 8 elements, new values have 1 elements
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
import mysql.connector
import pandas as pd 


def to_camel_case(col_name: str) -> str:
    #""function to convert column names to camel case"""
    if '_' in col_name:
        components = col_name.split('_')
    elif ' ' in col_name:
        components = col_name.split(' ')
    else:
        return col_name
    # We capitalize the first letter of each component except the first one
    # with the 'title' method and join them together.
    return components[0] + ''.join(x.title() for x in components[1:])

my_conn = mysql.connector.connect(
      host="localhost",
      user="admin",
      passwd="******",
      database="dbname"
    )
cursor = my_conn.cursor(buffered=True)

####### end of connection ####
#my_data = pd.read_sql("SELECT * FROM admin_user",my_conn)
#print(my_data)

tables_mysql = pd.read_sql_query("SHOW TABLES", my_conn)
print(tables_mysql)
for table in tables_mysql["Tables_in_{}".format('dbname')]:
    print(table)
    query = f"SELECT * FROM {table}"
    table_chunks = pd.read_sql_query(query, my_conn, chunksize=100000)
    for chunk in table_chunks:
       table_cols = chunk.columns
       print(table_cols)
       new_col_names = []
       for col_name in table_cols:
            new_col_names.append(to_camel_case(col_name))
            chunk.columns = new_col_names

            print(chunk.columns)
            print('====')
When i run this code i got this error. What is the solution?

   f"Length mismatch: Expected axis has {old_len} elements, new "
ValueError: Length mismatch: Expected axis has 8 elements, new values have 1 elements
Please always post entire, unmodified error so we can see program flow. Your snippit lacks line number, and looks modified.
Also, why not use one of the CamelCase packages, see: https://pypi.org/search/?q=camelcase