【问题标题】:Get a counting Series from DataFrame in Pandas从 Pandas 中的 DataFrame 获取计数系列
【发布时间】:2026-01-01 19:00:01
【问题描述】:

假设我有一个 pd.DataFrame,比如说 df,如下

df = pd.DataFrame({'No': np.arange(3), 'Status': [0,0,1]})

(i) 我想从上面 DataFrame 的第二列中提取一个 pd.Series 对象,并将 0 替换为“恶性”,将 1 替换为“良性”。 (ii) 然后得到这个新的 pd.Series 的摘要 pd.Series,计算 'malignant' 和 'benign' 的数量,这意味着摘要 pd.Series 包含两个条目并且具有索引 ['malignant','benign ']。

【问题讨论】:

  • 你能展示你的预期输出吗?
  • @Wen 就像 pd.Series benign 1 malignant 2,其中 benignmalignant 是索引。

标签: python pandas data-manipulation


【解决方案1】:

不确定你的意思是改变索引到底是什么,索引在下面的意思是'0,1,2'。

df.Status.replace({0:'malignant',1:'benign'})
0    malignant
1    malignant
2       benign

【讨论】:

  • 对不起,我已经改变了我的最后一个问题。而你的答案正是我想要的第一个问题。
【解决方案2】:

IIUC

df.assign(Status=df.Status.map({0:'maglinant',1:'benign'}))
Out[169]: 
   No     Status
0   0  maglinant
1   1  maglinant
2   2     benign

我猜你需要

df.assign(Status=df.Status.map({0:'maglinant',1:'benign'})).Status.value_counts()
Out[256]: 
maglinant    2
benign       1
Name: Status, dtype: int64

【讨论】:

  • 答案也很好!但我需要先提取Status
  • @JingZeng 你能把你做成数据框格式吗?