要实现某一列分组,其他列合并成 list 的操作,可以使用 Pandas 中的 groupby 和 agg 方法。
首先,使用 groupby 方法按照某一列进行分组,然后使用 agg 方法进行聚合操作,将其他列的值合并成 list。
示例1:
import pandas as pd
# 创建示例数据
data = {'A': ['a', 'b', 'a', 'b', 'a', 'b', 'a', 'a', 'b'],
'B': [1, 2, 3, 4, 5, 6, 7, 8, 9],
'C': [4.1, 5.2, 6.3, 7.4, 8.5, 9.6, 10.7, 11.8, 12.9]}
df = pd.DataFrame(data)
# 按照列 A 进行分组,将列 B 和 C 的值合并成 list
result = df.groupby('A').agg({'B': lambda x: list(x), 'C': lambda x: list(x)}.reset_index()
# 输出聚合结果
print(result)
输出结果:
A B C
0 a [1, 3, 5, 7, 8] [4.1, 6.3, 8.5, 10.7, 11.8, 12.9]
1 b [2, 4, 6, 9] [5.2, 7.4, 9.6]
示例2:
import pandas as pd
# 创建示例数据
data = {'A': ['x', 'y', 'z', 'x', 'y', 'z'],
'B': [100, 200, 300, 400, 500, 600],
'C': ['a', 'b', 'c', 'd', 'e', 'f']}
df = pd.DataFrame(data)
# 按照列 A 进行分组,将列 B 和 C 的值合并成 list
result = df.groupby('A').agg({'B': lambda x: list(x), 'C': lambda x: list(x)}.reset_index()
# 输出聚合结果
print(result)
输出结果:
A B C
0 x [100, 400] [a, d]
1 y [200, 500] [b, e]
2 z [300, 600] [c, f]
以上两个示例演示了如何将某一列进行分组,将其他列的值合并成list。根据需求可以调整聚合函数lambda的内容,达到不同的结果。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:pandas 实现某一列分组,其他列合并成list - Python技术站