Zeichenfolgen in einem DataFrame, aber dtype ist ein Objekt

Warum sagt mir Pandas, dass ich Objekte habe, obwohl jedes Element in der ausgewählten Spalte eine Zeichenfolge ist - auch nach expliziter Konvertierung.

Das ist mein DataFrame:

<class 'pandas.core.frame.DataFrame'>
Int64Index: 56992 entries, 0 to 56991
Data columns (total 7 columns):
id            56992  non-null values
attr1         56992  non-null values
attr2         56992  non-null values
attr3         56992  non-null values
attr4         56992  non-null values
attr5         56992  non-null values
attr6         56992  non-null values
dtypes: int64(2), object(5)

Fünf davon sinddtype object. Ich konvertiere diese Objekte explizit in Strings:

for c in df.columns:
    if df[c].dtype == object:
        print "convert ", df[c].name, " to string"
        df[c] = df[c].astype(str)

Dann,df["attr2"] hat immernochdtype object, obwohltype(df["attr2"].ix[0] enthülltstr, welches ist richtig.

Pandas unterscheidet zwischenint64 undfloat64 undobject. Was ist die Logik dahinter, wenn es keine gibt?dtype str? Warum ist einstr überdeckt vonobject?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage