拆分和合并pandas datafram

2024-09-28 03:24:01 发布

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

我正在尝试拆分和合并Pandas数据帧。在

原始数据帧的列排列如下:

dataTime Record1Field1 ... Record1FieldN Record2Field1 ... Record1FieldN
time1    <<     record 1 data         >> <<       record 2 data       >>

我想把Record2字段拆分成一个单独的数据帧tempdf,按dataTime索引。tempdf因此看起来像这样:

^{pr2}$

填充tempdf后,从原始数据框中删除Record2列。我遇到的第一个困难是创建包含记录2数据的tempdf。在

然后,我想重命名tempdf中的列,以便它们与原始数据框中的Record1列对齐。(这部分我知道怎么做)

最后,我想将tempdf合并回原始数据帧中。在

最终结果应该如下所示:

dataTime Record1Field1 ... Record1FieldN
time1    <<record 1 data>>
time1    <<record 2 data>>

到目前为止,我还没有找到一个好的方法。感谢任何帮助!谢谢。在


Tags: 数据pandasdata原始数据记录record重命名pr2
3条回答

尝试使用concat

所以尝试一下:

Combined = [DataFrame1,DataFrame2]
Together = pandas.concat(Combined)

正如其他人评论的-merge可能也是一个不错的选择。在

如果知道要选择的列,则使用

 tempdf = df[['a','b']]

否则要选择最后2列,请使用

^{pr2}$

您可以获得Record1列下的所有Record2值,如下所示:

数据设置:

data = StringIO(
'''
dataTime Record1Field1 Record1Field2 Record1Field3 Record2Field1 Record2Field2 Record2Field3
01-01-2015 1 2 3 4 5 6 
''')

df = pd.read_csv(data, delim_whitespace=True, parse_dates=['dataTime'])
print (df)

    dataTime  Record1Field1  Record1Field2  Record1Field3  Record2Field1  \
0 2015-01-01              1              2              3              4   

   Record2Field2  Record2Field3  
0              5              6 

操作:

^{pr2}$

相关问题 更多 >

    热门问题