python-3.x - 将列中的所有重复值作为 pandas 中的单个值

标签 python-3.x pandas dataframe

我当前的数据框是:

     Name   term    Grade
  0    A      1       35
  1    A      2       40
  2    B      1       50
  3    B      2       45

我想获取一个数据框:

     Name   term    Grade
  0   A      1        35
             2        40
  1   B      1        50
             2        45

我有可能得到我预期的输出吗?如果是,我该怎么做?

最佳答案

使用duplicated对于 bool 掩码 numpy.where :

mask = df['Name'].duplicated()
#more general
#mask = df['Name'].ne(df['Name'].shift()).cumsum().duplicated()
df['Name'] = np.where(mask, '', df['Name'])
print (df)
  Name  term  Grade
0    A     1     35
1          2     40
2    B     1     50
3          2     45

在更改的DataFrame中可以看到掩码之间的差异:

print (df)
  Name  term  Grade
0    A     1     35
1    A     2     40
2    B     1     50
3    B     2     45
4    A     4     43
5    A     3     46

如果多个相同的连续组(例如 2 个 A 组)需要通用解决方案:

mask = df['Name'].ne(df['Name'].shift()).cumsum().duplicated()
df['Name'] = np.where(mask, '', df['Name'])
print (df)
  Name  term  Grade
0    A     1     35
1          2     40
2    B     1     50
3          2     45
4    A     4     43
5          3     46

mask = df['Name'].duplicated()
df['Name'] = np.where(mask, '', df['Name'])
print (df)
  Name  term  Grade
0    A     1     35
1          2     40
2    B     1     50
3          2     45
4          4     43
5          3     46

关于python-3.x - 将列中的所有重复值作为 pandas 中的单个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52023452/

相关文章:

python - 对两个 pandas 列执行逐行操作

python - 在 Pandas 数据框中将单元格拆分为多行

python - 将 Dataframe 列转换为行 Dataframe

python - 将 pd.dataframe 中的部分列替换为具有不同长度的数组

python - 使 turtle 图形内联

python-3.x - AttributeError: 'module' 对象没有属性 'urlretrieve'

python - 需要对 python 代码进行一些小修改

python - 使用请求从谷歌距离矩阵 api 获取响应时出现连接错误

python - pandas statsmodels中的predict(),添加自变量

python - 如何通过在一个函数中包含所有类型的填充来处理缺失值?