python - 添加一个 DataFrame 列以基于另一个列实例进行分组

标签 python pandas csv

我刚开始使用 Pandas,我正在努力添加一个简单的列来添加字符串组 + 列中唯一值的出现次数。

我试过用groupby,但我不知道如何根据列名添加一个数字

import pandas as pd

data = pd.read_csv('./data.csv')
data['group'] = data.groupby('name') # ??? 
   name  color
0  car   white
1  car   black
2  car   red
3  bus   white
4  bus   black
5  bus   red

应该是这样的

   name  color  group
0  car   white  group1
1  car   black  group1
2  car   red    group1
3  bus   white  group2
4  bus   black  group2
5  bus   red    group2

最佳答案

使用factorize()这里:

df=df.assign(group=(pd.factorize(df.name)[0]+1))

  name  color  group
0  car  white      1
1  car  black      1
2  car    red      1
3  bus  white      2
4  bus  black      2
5  bus    red      2

关于python - 添加一个 DataFrame 列以基于另一个列实例进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56906805/

相关文章:

Python3 创建守护进程

Python单元测试: how to test function that calls other function?

Python + JSON,None 发生了什么?

python - SQLAlchemy/ Pandas : Can not insert default time in MySQL

python-3.x - 重命名 Pandas DataFrame 中的列不起作用

python - 我可以从 Mathematica 执行远程 python 脚本吗?

python - 修改pandas数据框中的csv数据

python - 根据两列组合的匹配将列从一个数据帧复制到另一数据帧

javascript - jQuery CSV 插件不会将行拆分为数组的数组

javascript - 如何从 csv 文件中提取特定对象?