1
我在大型数据框上使用熊猫0.18.1。我对value_counts()
的行为感到困惑。这是我的代码:为什么value_counts不显示所有值?
print df.phase.value_counts()
def normalise_phase(x):
print x
return int(str(x).split('/')[0])
df['phase_normalised'] = df['phase'].apply(normalise_phase)
此打印如下:
2 35092
3 26248
1 24646
4 22189
1/2 8295
2/3 4219
0 1829
dtype: int64
1
nan
两个问题:
- 为什么
nan
印刷为一体的normalise_phase
输出,当nan
没有被列为value_counts
的值? - 为什么
value_counts
显示dtype
作为int64
如果有字符串值就像它1/2
和nan
吗?
谢谢!我不知道'value_counts'减少了'NaN'值,这感觉很不直观。 – Richard
@Richard在基本操作中,熊猫的默认行为是忽略NaN(例如,当取得和时,numpy在这种情况下返回nan)。我想在value_counts NaNs被放弃是一致的,但我同意,当我第一次意识到这一点时,我很惊讶。 – ayhan