如何将同一列中的列附加到以类似名称结尾的不同行中

2024-04-24 08:41:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我想转换如下所示的dataframe:

time | 0.id | 0.a | 0.b | 1.id | 1.a | 1.b |...

00:00| abc  | 0a  | 0b  | bcd  | 1a  | 1b |...

对下列事项:

time  | id  | a  | b |...

00:00 | abc | 0a | 0b|...
00:00 | bcd | 1a | 1b|...

我使用的是python,数据帧是一个数据帧


Tags: 数据iddataframetime事项abcbcd
1条回答
网友
1楼 · 发布于 2024-04-24 08:41:54

这是在翻转列名之后的wide_to_long,因此stubnames是正确的

df.columns = ['_'.join(x[::-1]) for x in df.columns.str.split('.')]
stubs = pd.unique([x[0] for x in df.columns.str.split('_') if x[0] != 'time'])

pd.wide_to_long(df, i='time', stubnames=stubs, sep='_', j='num').reset_index(1, drop=True)

#        id   a   b
#time              
#00:00  abc  0a  0b
#00:00  bcd  1a  1b

相关问题 更多 >