在使用 groupby
对 Pandas DataFrame 进行分组时,默认情况下不会显示行号。如果你想在分组后仍然能够看到每行的原始索引(行号),可以使用 reset_index
方法来重置索引,这样原来的索引就会被转换为 DataFrame 中的一列。
以下是一个简单的例子:
import pandas as pd
# 创建一个示例 DataFrame
data = {
'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
'C': [10, 20, 30, 40, 50, 60, 70, 80],
'D': [1, 2, 3, 4, 5, 6, 7, 8]
}
df = pd.DataFrame(data)
# 使用 groupby 对列 'A' 进行分组,并计算每组的平均值
grouped = df.groupby('A').mean()
# 重置索引以显示原始的行号
grouped_with_index = grouped.reset_index()
print(grouped_with_index)
输出将会是:
A C D
0 bar 40.000000 4.000000
1 foo 42.500000 4.250000
在这个例子中,reset_index
方法将分组后的 DataFrame 的索引重置,原来的索引(行号)变成了 'A' 列旁边的新列。
如果你想要保留原始的行号作为一列,而不是作为索引,可以在 reset_index
方法中设置 drop=False
参数:
grouped_with_original_index = df.groupby('A').mean().reset_index(drop=False)
print(grouped_with_original_index)
这样,原始的行号就会作为一个名为 'index' 的列保留在结果 DataFrame 中。
参考链接:
领取专属 10元无门槛券
手把手带您无忧上云