簡體   English   中英

Pandas dataframe value_counts 將相同的值分別計數為唯一值

[英]Pandas dataframe value_counts count same values seperately as unique values

我嘗試更換? 在具有列模式的數據集中。

首先,我使用檢查該列中的唯一值

df['bare_nucleoli'].value_counts()

這是結果

1     402
10    132
5      30
2      30
3      28
8      21
4      19
?      16
9       9
7       8
6       4
Name: bare_nucleoli, dtype: int64

所以我決定先把問號改成NaN,以便檢查其他列中的標記

import numpy as np
df.replace('?',np.nan, inplace = True)

然后將 NaN 更改為該列的模式,即 1。

df['bare_nucleoli'].fillna(1, inplace = True)

結果表明它改變了 NaN 值,但它被單獨計為另一個像這樣的唯一值

1     402
10    132
5      30
2      30
3      28
8      21
4      19
1      16
9       9
7       8
6       4
Name: bare_nucleoli, dtype: int64

這背后的原因是什么?如何更改值並將其放在同一組中?

只是猜測,但如果您嘗試 df.dtypes,您可能會發現第一列是 object 類型。 可能第一個是字符串 '1' 而不是數字 1。

它可能是一個字符串而不是 integer。 你可以更簡單地完成你的目標

 bare_nucleoli_mode = df['bare_nucleoli'].mode()
 df['bare_nucleoli'] = df['bare_nucleoli'].replace('?', bare_nucleoli_mode)`.

嘗試:

df.loc[df['bare_nucleoli'] == '?'] = 1
df['bare_nucleoli'].value_counts()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM