python - 组列记录 python pandas
问题描述
取出.value_counts()时,我有一列包含以下记录。这是我的 df 列的片段
Mayo 76363
Marzo 74580
Abril 71219
Enero 70222
Junio 69692
Febrero 68943
May 30
Aabril 12
ENRO 4
Febrero-2015 1
Mayo-2018 1
取出 .value_counts () 时我只想有以下值
enero 70226
febrero 68944
marzo 74580
abril 71231
mayo 76394
知道我该怎么做吗?
谢谢
解决方案
好吧,您必须在调用之前标准化月份名称df.value_counts()
,以便它们正常分组。我们可以通过创建一个具有正确名称的替换字典来修复它。
从您显示的片段中,您需要将月份名称转换为正确的格式,因此,假设列名是month
和value
# Name the columns
>>> df.columns = ["month", "value"]
# Get rid of `-` part, bring month names to lower case.
>>> df["month"] = df.month.str.split("-").str[0].str.lower()
>>> df
month value
0 mayo 76363
1 marzo 74580
2 abril 71219
3 enero 70222
4 junio 69692
5 febrero 68943
6 may 30
7 aabril 12
8 enro 4
9 febrero 1
10 mayo 1
# Get the dictionary of column names
>>> month_names = { i:i for i in df["month"].unique() }
# Update the month names which have error
>>> month_names["aabril"] = "abril"
>>> month_names["enro"] = "enero"
>>> month_names["may"] = "mayo"
>>> month_names
{'mayo': 'mayo', 'marzo': 'marzo', 'abril': 'abril', 'enero': 'enero', 'junio': 'junio', 'febrero': 'febrero', 'may': 'may', 'aabril': 'abril', 'enro': 'enero'}
# Rename the month column values
>>> df["month"] = df["month"].map(month_names)
# Now, group by month names
>>> df.groupby("month").sum().reset_index()
month value
0 abril 71231
1 enero 70226
2 febrero 68944
3 junio 69692
4 marzo 74580
5 mayo 76394
推荐阅读
- c# - 如何实现控制反转 c# - wpf
- javascript - 如何使用正值控制 tabIndex 和元素的焦点捕获?
- swift - 在 Swift 中使用闭包时出现奇怪的消息“源文件中的编辑器占位符”
- sql - GROUP BY 2 表
- python - 虚拟环境下使用Spyder时无法导入pandas
- typescript - TypeScript Api Manager 和会话处理
- python - 如何模拟模块python,补丁找不到属性
- javascript - 按最大长度拼接对象数组
- design-patterns - Smalltalk 中的设计模式
- python - 获取数据框中最常见(频繁)单词的平均分数