gpt4 book ai didi

python - 如何将多列中的时间戳重新排序为单列python

转载 作者:太空宇宙 更新时间:2023-11-04 04:37:40 25 4
gpt4 key购买 nike

我正在尝试将 pandas df 中多个 columnstimestamps 排序为单个时间顺序

所以对于下面的 df,我想将它们组合起来创建一列

import pandas as pd

d = ({
'' : ['Bar','Foo','Fubar'],
'A' : ['8:00','8:29','8:58'],
'B' : ['8:30','8:59','9:28'],
'C' : ['9:00','9:29','10:00'],
})

df = pd.DataFrame(data=d)

输出:

             A     B      C
0 Bar 8:00 8:30 9:00
1 Foo 8:29 8:59 9:29
2 Fubar 8:58 9:28 10:00

预期输出:

       1  2      3
0 Bar 1 8:00
1 Foo 1 8:29
2 Bar 2 8:30
3 Fubar 1 8:58
4 Foo 2 8:59
5 Bar 3 9:00
6 Fubar 2 9:28
7 Foo 3 9:29
8 Fubar 3 10:00

我可以通过 df = df.sort_values(by='1',ascending=True) 对它们进行排序,但我需要以某种方式合并它们。我努力了;

df =  df.sum(axis=1)

我也尝试过类似的加入方法,但结果总是这样

0       Bar8:008:309:00
1 Foo8:298:599:29
2 Fubar8:589:2810:00

更新:

使用@Wen 的代码我得到以下输出

df.columns=['',1,2,3]
df = pd.melt(df, '')
df = df.sort_values(by='value',ascending=True)

variable value
8 Fubar 3 10:00 #All ordered except for the first row?
0 Bar 1 8:00
1 Foo 1 8:29
3 Bar 2 8:30
2 Fubar 1 8:58
4 Foo 2 8:59
6 Bar 3 9:00
5 Fubar 2 9:28
7 Foo 3 9:29

除了第一行,其他的都排序了吗?

最佳答案

国际联合会

df.columns=['',1,2,3]
df.melt('')
Out[99]:
variable value
0 Bar 1 8:00
1 Foo 1 8:29
2 Fubar 1 8:58
3 Bar 2 8:30
4 Foo 2 8:59
5 Fubar 2 9:28
6 Bar 3 9:00
7 Foo 3 9:29
8 Fubar 3 10:00

关于python - 如何将多列中的时间戳重新排序为单列python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51316723/

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