通过一个数据帧将行值和列值连接到一个关于特定列值的新数据帧中来扩展数据帧

2024-04-24 13:09:54 发布

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

我有一个32250行x901列的数据帧:data 我希望遍历列“TRAINSET”的行值,并连接列'1'、'2'、'3'…n的相应行值,并保持连接字段的“日期”相同:

例如

 d= {     'TS': ['a', 'b', 'c'],
       'date':  [ 7,   6,   8 ],
         'X':   ['x', 'x', 'x'],
         'Y':   ['y', 'y', 'y']
     }

,即操作后,生成的数据帧将如下所示

d= {   'TS+1':  ['ax','ay','bx','by','cx','cy'],
       'date':  [ 7,   7,   6,   6,    8,   8 ],
         'X':   ['x', 'x',  'x', 'x', 'x', 'x'],
         'Y':   ['y', 'y',  'y', 'y', 'y', 'y']
    } 

x,y….n包含32250个相同值的条目 请检查图像以了解实际数据说明

结果表的前几个值如下

d= { 'TRAINSET':['TNST175TC101','TNST175TC102','TNST175TC103','TNST175TC104','TNST175TC105'],
   'date':[ '2018-1-5','2018-1-5','2018-1-5','2018-1-5','2018-1-5'],
     '1':   ['TC101', 'TC101',  'TC101', 'TC101', 'TC101'],
     '2':   ['TC102', 'TC102',  'TC102', 'TC102', 'TC102']
        }

提前感谢:)


Tags: 数据dateby条目axcxtscy
1条回答
网友
1楼 · 发布于 2024-04-24 13:09:54

使用^{}并通过^{}TS列添加新值,然后使用^{}并通过reset_index创建默认值RangeIndex

df = pd.concat([df.assign(TS = df['TS'] + 'x'), 
                df.assign(TS = df['TS'] + 'y')]).sort_index().reset_index(drop=True)
print (df)
   TS  date  X
0  ax     7  x
1  ay     7  x
2  bx     6  y
3  by     6  y
4  cx     8  z
5  cy     8  z

相关问题 更多 >