分组列记录

2024-10-04 03:27:33 发布

您现在位置:Python中文网/ 问答频道 /正文

在取出.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\u计数()时,我只希望有以下值

enero       70226
febrero     68944
marzo       74580
abril       71231
mayo        76394

你知道我怎么做吗

多谢各位


Tags: dfvalue记录may计数countsmayo专栏
1条回答
网友
1楼 · 发布于 2024-10-04 03:27:33

嗯,您必须在调用df.value_counts()之前规范化月份名称,以便它们正常分组。我们可以通过创建一个具有专有名称的替换词典来修复它

从您显示的片段中,您需要将月份名称转换为正确的格式,因此,假设列名为monthvalue

# 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

相关问题 更多 >