在Python中,可以使用pandas库来将数据集从宽格式转换为长格式进行分组。下面是一个包含代码示例的解决方法:
import pandas as pd
# 创建示例数据集
data = {
'id': [1, 2, 3, 4],
'name': ['John', 'Alice', 'Bob', 'Charlie'],
'value_a_1': [10, 20, 30, 40],
'value_a_2': [50, 60, 70, 80],
'value_b_1': [90, 100, 110, 120],
'value_b_2': [130, 140, 150, 160]
}
df = pd.DataFrame(data)
# 将数据集转换为长格式
df_long = pd.wide_to_long(df, stubnames=['value_a', 'value_b'], i=['id', 'name'], j='suffix', sep='_')
# 重置索引
df_long = df_long.reset_index()
# 按变量后缀分组
grouped = df_long.groupby('suffix')
# 打印每个后缀的分组结果
for name, group in grouped:
print(f"Group '{name}':")
print(group)
print()
在上述代码中,我们首先创建了一个示例数据集,其中包含id、name以及以value_a和value_b为前缀的两个变量后缀的列。然后,我们使用pd.wide_to_long()函数将数据集从宽格式转换为长格式,其中stubnames参数指定了要转换的变量前缀,i参数指定了要保留的标识符列,j参数指定了要创建的后缀列的名称,sep参数指定了用于分割变量名和后缀的分隔符。接下来,我们通过reset_index()函数重置了索引,以便后续分组操作。最后,我们使用groupby()函数按变量后缀进行分组,然后遍历每个分组并打印结果。
希望对你有帮助!
下一篇:按变量计数总结数据