在Pandas 身上,我一直在绞尽脑汁地想弄清楚这个看似简单的数据操作任务,但我一直没能弄清楚怎么做,也没能在谷歌上搜索到一个足够的答案:

我想做的就是把下面截图左边的表格(将是Pandas 数据框)转换成右边的表(成为另一个Pandas 数据框).

enter image description here

创建初始数据帧的代码:

import pandas as pd

test_data = pd.DataFrame(
        {
            'team': [1,1,2,2,3,3,4,4,5,5] ,
            'player': ['a','b','c','d','e','f','g','h','i','j'] ,
            'score': [10,22,66,44,1,3,55,6,4,2]
        }
)

提前感谢您的帮助!

推荐答案

尝尝这个,

test_data.groupby('team').agg({'player':['first', 'last'], 'score': ['first', 'last']})

运费:运费:

    player_first player_last  score_first  score_last
team                                                  
1               a           b           10          22
2               c           d           66          44
3               e           f            1           3
4               g           h           55           6
5               i           j            4           2

完整的解决方案:

test_data = test_data.groupby('team').agg({'player':['first', 'last'], 'score': ['first', 'last']})
test_data.columns = ['_'.join(x) for x in test_data.columns]
test_data = test_data.reset_index()
test_data = test_data[['team', 'player_first', 'score_first', 'player_last', 'score_last']]

运费:运费:

   team player_first  score_first player_last  score_last
0     1            a           10           b          22
1     2            c           66           d          44
2     3            e            1           f           3
3     4            g           55           h           6
4     5            i            4           j           2​
  • 您需要的是第一个和最后一个的分组和聚合操作
  • 设置列名
  • 重置索引并重新排序列

Python相关问答推荐

在Pandas DataFrame操作中用链接替换'方法的更有效方法

用Python解密Java加密文件

如何将一个动态分配的C数组转换为Numpy数组,并在C扩展模块中返回给Python

Python+线程\TrocessPoolExecutor

形状弃用警告与组合多边形和多边形如何解决

在嵌套span下的span中擦除信息

下三角形掩码与seaborn clustermap bug

基于多个数组的多个条件将值添加到numpy数组

查看pandas字符列是否在字符串列中

在Python中控制列表中的数据步长

按条件添加小计列

如何设置nan值为numpy数组多条件

如何获得满足掩码条件的第一行的索引?

为什么在Python中00是一个有效的整数?

用0填充没有覆盖范围的垃圾箱

如果服务器设置为不侦听创建,则QWebSocket客户端不连接到QWebSocketServer;如果服务器稍后开始侦听,则不连接

遍历列表列表,然后创建数据帧

如何在不不断遇到ChromeDriver版本错误的情况下使用Selify?

Parsel无法访问嵌套元素

如何在保持sibling 姐妹美汤的同时插入和删除标签?