gpt4 book ai didi

python - 将 0 或 1 的实例计数到系列中

转载 作者:行者123 更新时间:2023-12-01 02:53:41 24 4
gpt4 key购买 nike

如果我的数据框使用的列的实例值为 0 或 1,并且我希望对其进行计数,那么针对索引迭代标记为 0 或 1 的列的语法是什么。

这个:

output = df.Series([0,1], index= ['no', 'yes'])

将返回:

no    0
yes 1
dtype: int64

而我想获得整个列的总体“否”/"is"标记计数为 0 或 1。

实际的数据帧与 scikit-learn 数据相关,我在数据集的末尾创建了一个目标列,因此:worst concave points worst symmetry worst fractal dimension target<br/>
0 0.26540 0.4601 0.11890 0.0

尝试像这样映射:

    status = {0:'Malignant', 1:'Benign'}
cancerdf['target'] = cancerdf['target'].map(status)

结果

TypeError: tuple indices must be integers or slices, not str

我正在尝试返回一个系列,但似乎偏离了轨道。

最佳答案

我认为你需要value_counts使用重命名 map :

np.random.seed(123)
s = pd.Series(np.random.choice([0,1], size=10))
print (s)
0 0
1 1
2 0
3 0
4 0
5 0
6 0
7 1
8 1
9 0
dtype: int32

d = {0:'No', 1:'yes'}
print (s.value_counts().rename(index=d))
No 7
yes 3
dtype: int64

或者:

d = {0:'No', 1:'yes'}
print (s.map(d).value_counts())
No 7
yes 3
dtype: int64

或者也许需要map :

np.random.seed(123)
df = pd.DataFrame({'A':np.random.choice([0,1], size=10)})

d = {0:'No', 1:'yes'}
df['A'] = df['A'].map(d)
print (df)
A
0 No
1 yes
2 No
3 No
4 No
5 No
6 No
7 yes
8 yes
9 No

编辑:

我认为问题是target列中数据的type不是int,而是float

所以需要:

status = {0:'Malignant', 1:'Benign'}
cancerdf['target'] = cancerdf['target'].astype(int).map(status)

如果它不起作用,有一些数据不是数字,解决方案是使用 to_numeric将它们替换为 NaN,然后将它们转换为 int,例如 2,最后转换为 int:

cancerdf = pd.DataFrame(data={'Target':[1,0,1,'d', 'nan', np.nan]})
print (cancerdf)
Target
0 1
1 0
2 1
3 d
4 nan
5 NaN

status = {0:'Malignant', 1:'Benign'}
cancerdf['Target'] = pd.to_numeric(cancerdf['Target'], errors='coerce') \
.fillna(2).astype(int).map(status)

print (cancerdf)
Target
0 Benign
1 Malignant
2 Benign
3 NaN
4 NaN
5 NaN

关于python - 将 0 或 1 的实例计数到系列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44454655/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com