按某些列分组数据框,什么都不做,显示结果
我有一个Pandas的数据表,想要根据一些列来对数据进行分组,然后不做任何操作,最后显示出处理后的数据表。听起来可能有点奇怪,但其实这是为了方便展示,因为我需要把这个数据表格式化成Latex的表格格式。
来看这个例子:
import pandas as pd
data = [
dict(a=1, b=2, c=3),
dict(a=1, b=2, c=4),
dict(a=1, b=2, c=3),
dict(a=2, b=1, c=5),
dict(a=2, b=1, c=9)
]
df = pd.DataFrame.from_records(data)
display(df)
print("reindexed")
df2 = df.set_index(["a", "b"]).sort_index()
display(df2)
输出结果是:
a b c
0 1 2 3
1 1 2 4
2 1 2 3
3 2 1 5
4 2 1 9
reindexed
c
a b
1 2 3
2 4
2 3
2 1 5
1 9
我不想在b这一列中出现重复的值。期望的输出应该是:
c
a b
1 2 3
4
3
2 1 5
9
我一直没能做到这一点,虽然这应该很简单。我尝试使用了分组操作:
print("grouped")
df3 = df.groupby(["a", "b"]).apply(lambda x: x)
print(df3)
但得到的结果是:
grouped
a b c
a b
1 2 0 1 2 3
1 1 2 4
2 1 2 3
2 1 3 2 1 5
4 2 1 9
我哪里做错了呢?