如何用Pandas将DataFrame列的取值与对应频次拆分为两个列表
用Pandas提取取值和对应频次到两个降序列表的方法
嘿,这问题其实很好解决,咱们一步步来操作:
首先先还原你的DataFrame场景:
import pandas as pd df = pd.DataFrame({'A': ['j', 'j', 'k', 'j', 'b', 'k']})
你提到的value_counts()其实已经帮你做好了降序排列的计数工作,它返回的Series本身就包含了你需要的取值(作为索引)和对应频次(作为值)。咱们只需要把这两部分分别转成列表就行:
- 先获取排序后的计数Series:
count_result = df['A'].value_counts()
这个count_result的结构是:
j 3 k 2 b 1 Name: A, dtype: int64
- 提取索引转成取值列表,提取值转成频次列表:
ValueList = count_result.index.tolist() CountList = count_result.values.tolist()
现在你打印这两个列表,就会得到你想要的结果:
ValueList→['j', 'k', 'b']CountList→[3, 2, 1]
如果之后你需要调整排序顺序,比如改成升序,只需要在value_counts()里加个参数ascending=True就行,非常灵活。
内容的提问来源于stack exchange,提问作者potato99
相关产品推荐
相关产品推荐

