Ich habe einen Datenrahmen erstellt und apply (type)/applymap (type) auf verschiedene Arten aufrufen. Das Problem ist, dass ich unterschiedliche Ergebnisse bekommen habe. Ich bin verwirrt über die int
und int64
Arten.Warum werden in Pandas falsche Ergebnisse angezeigt?
In [116]: df_term[0:5]
Out[116]:
term tag count weight pt
0 -03 OTHER 380 3085.0 2017-12-06
1 -300 NUM 1224 6120.0 2017-12-06
2 -805 OTHER 30 258.0 2017-12-06
3 0-150mm0-200mm0-300mm XH 27 1650.0 2017-12-06
4 040639 OTHER 52 464.0 2017-12-06
In [106]: df_term.dtypes
Out[106]:
term object
tag object
count int64
weight float64
pt object
dtype: object
In [109]: type(df_term.iloc[0]['count'])
Out[109]: numpy.int64
In [111]: df_term.iloc[0].apply(type)['count']
Out[111]: numpy.int64
In [113]: type(df_term['count'].iloc[0])
Out[113]: numpy.int64
In [114]: df_term['count'].apply(type)[0]
Out[114]: int
In [115]: df_term[0:1].applymap(type)['count']
Out[115]:
0 <type 'int'>
Name: count, dtype: object
Ich habe auch versucht, ihre Typen zu vergleichen:
In [156]: df_term.iloc[0].apply(type)['count']
Out[156]: numpy.int64
In [157]: df_term.applymap(type).iloc[0]['count']
Out[157]: int
In [158]: df_term.iloc[0].apply(type)['count'] == df_term.applymap(type).iloc[0]['count']
Out[158]: False
Können Sie fügen die ersten 5 Zeilen von 'df_term'? –
@ cᴏʟᴅsᴘᴇᴇᴅ, ich habe seinen Inhalt eingefügt – moshangcheng
Ah, die Dinge sind jetzt ziemlich klar Es gibt einen Unterschied zwischen dem, was' Pandas' anzeigt und was IPython dir zeigt, aber sie sind beide gleich –