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
?