dataframe各个主体的某一列观测时间转成一行
可以使用pivot操作来将某一列的观测时间转成一行,具体步骤如下:
-
确定需要转换的列和需要保留的列,并将数据按照这些列进行分组。
-
对于需要转换的列,将其作为新的列索引,将数据进行透视。
-
对于透视后的数据,将新的列索引重置为行索引,并将数据进行重新排序。
下面是一个示例代码,假设有一个dataframe包含学生姓名、科目和成绩,需要将每个学生的成绩按照科目转换为一行:
import pandas as pd
# 创建示例数据
data = {'姓名': ['张三', '张三', '李四', '李四', '王五', '王五'],
'科目': ['语文', '数学', '语文', '数学', '语文', '数学'],
'成绩': [80, 90, 85, 95, 75, 85]}
df = pd.DataFrame(data)
# 使用pivot进行透视
df_pivot = df.pivot(index='姓名', columns='科目', values='成绩')
# 重置索引并重新排序
df_pivot = df_pivot.reset_index().sort_values(by='姓名')
# 输出转换后的数据
print(df_pivot)
输出结果如下:
姓名 数学 语文
0 张三 90 80
1 李四 95 85
2 王五 85 75
可以看到,转换后的数据每一行表示一个学生的成绩情况,列包含了所有的科目。
原文地址: https://www.cveoy.top/t/topic/Byq 著作权归作者所有。请勿转载和采集!