Python Pandas: TypeError: Tuple Indices Must Be Integers Or Slices, Not Str

924    Asked by AndreaBailey in Python , Asked on Nov 17, 2022

help me solve this error. I am trying to print row values

import pandas as pd
df = pd.read_csv(“/home/user/data1”)
for row in df.iterrows():
    print (row['Email'])
Answered by Alison Kelly

Regarding the typeerror: tuple indices must be integers or slices, not str add the parameter cursor class=MySQLdb.cursors.DictCursor at the end of your MySQLdb.connect.

I had a working code and the DB moved, I had to change the host/user/pass. After this change, my code stopped working and I started getting this error. Upon closer inspection, I copy-pasted the connection string on a place that had an extra directive. The old code read like:
 conn = MySQLdb.connect(host="oldhost",
                        user="olduser",
                        passwd="oldpass",
                        db="olddb",
                        cursorclass=MySQLdb.cursors.DictCursor)
Which was replaced by:
 conn = MySQLdb.connect(host="newhost",
                        user="newuser",
                        passwd="newpass",
                        db="newdb")

The parameter cursorclass=MySQLdb.cursors.DictCursor at the end was making python allow me to access the rows using the column names as index. But the poor copy-paste eliminated that, yielding the error. So, as an alternative to the solutions already presented, you can also add this parameter and access the rows in the way you originally wanted. ^_^ I hope this helps others.



Your Answer

Interviews

Parent Categories