데이터 프레임을 만들고 apply (type)/applymap (type)을 다른 방법으로 호출했습니다. 문제는 다른 결과가 있다는 것입니다. int
및 int64
유형에 대해 혼란스러워합니다.팬더에 왜 적용 (유형) 결과가 일치하지 않습니까?
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
또한 자신의 유형을 비교하는 시도 :
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
당신이 붙여 넣을 수 있습니다 이유
apply
수신 기능 (이 경우type
에 각 행의 값을 전달하기 위해,Series.apply
안에이 같은 무언가를 'df_term'의 처음 5 행? –@ cᴏʟᴅsᴘᴇᴇᴅ, 내용을 붙여 넣었습니다 – moshangcheng
아, 지금 상황이 꽤 분명합니다. '팬더'가 표시하는 것과 IPython이 보여주는 것과는 차이가 있습니다. 그러나 둘 다 동일합니다. –