gpt4 book ai didi

Python - 保留日期列并使用字段名称翻转单元格

转载 作者:行者123 更新时间:2023-12-03 23:07:46 25 4
gpt4 key购买 nike

我正在处理 Pandas 数据框中的时间表。第一列是日期,其他列是类次:类次 1 类次 2、类次 3 等。类次下是员工:e1、e2、e3 等。

我当前的数据如下所示:

df
calander_date s1 s2 s3 s4 s5 s6 s7 s8 s9
0 1/1/2020 e1 e3 e6 e2 Nan e7 e4 Nan e9
1 1/2/2020 e2 e8 e6 e4 Nan e5 e1 Nan e7
2 1/3/2020 e3 e10 e4 e2 Nan e7 e1 Nan e9
3 1/4/2020 Nan e10 e4 e2 e5 e7 e1 Nan e9

我的目标是将日期保留为第一列,并将员工作为字段名称,并让轮类在员工下工作,如下所示:
df
calander_date e1 e2 e3 e4 e5 e6 e7 e8 e9
0 1/1/2020 s1 s4 s2 s7 Nan s3 s6 Nan s9
1 1/2/2020 s7 s1 Nan s4 s6 s3 s9 s2 Nan
2 1/3/2020 s7 s4 s1 s3 Nan Nan s6 Nan s9
3 1/4/2020 s7 s4 Nan s3 s5 Nan s6 Nan s9

寻找一种巧妙的方法来实现这一点。

最佳答案

这是melt/stack的组合和 unstack/pivot :

(df.set_index('calander_date').replace('Nan', np.nan)
.stack().reset_index(name='employee')
.pivot('calander_date', 'employee','level_1')
)

输出:
employee       e1  e10  e2   e3  e4   e5   e6  e7   e8   e9
calander_date
1/1/2020 s1 NaN s4 s2 s7 NaN s3 s6 NaN s9
1/2/2020 s7 NaN s1 NaN s4 s6 s3 s9 s2 NaN
1/3/2020 s7 s2 s4 s1 s3 NaN NaN s6 NaN s9
1/4/2020 s7 s2 s4 NaN s3 s5 NaN s6 NaN s9

关于Python - 保留日期列并使用字段名称翻转单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61215310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com