可以使用pivot操作来将某一列的观测时间转成一行,具体步骤如下:

  1. 确定需要转换的列和需要保留的列,并将数据按照这些列进行分组。

  2. 对于需要转换的列,将其作为新的列索引,将数据进行透视。

  3. 对于透视后的数据,将新的列索引重置为行索引,并将数据进行重新排序。

下面是一个示例代码,假设有一个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

可以看到,转换后的数据每一行表示一个学生的成绩情况,列包含了所有的科目。

dataframe各个主体的某一列观测时间转成一行

原文地址: https://www.cveoy.top/t/topic/Byq 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录