gpt4 book ai didi

pandas - 在 Pandas 中连接连续行的简洁方法

转载 作者:行者123 更新时间:2023-12-03 18:47:51 25 4
gpt4 key购买 nike

我想获取一个数据框并连接连续的行进行比较。
例如

xyt = pd.DataFrame(np.concatenate((np.random.randn(3,2), np.arange(3).reshape((3, 1))), axis=1), columns=['x','y','t'])
看起来像:
    x           y           t
0 1.237007 -1.035837 0.0
1 -1.782458 1.042942 1.0
2 0.063130 0.355014 2.0
和做:
    a                               b
x y t x y t
0 1.237007 -1.035837 0.0 -1.782458 1.042942 1.0
1 -1.782458 1.042942 1.0 0.063130 0.355014 2.0
我能想到的最好的是:
pd.DataFrame(
[np.append(x,y) for (x, y) in zip(xyt.values, xyt[1:].values)],
columns=pd.MultiIndex.from_product([('a', 'b'), xyt.columns]))
有没有更好的办法?

最佳答案

让我们试试 concat在轴 = 1 上 shifted框架:

import pandas as pd

xyt = pd.DataFrame({'x': {0: 1.237007, 1: -1.782458, 2: 0.06313},
'y': {0: -1.035837, 1: 1.042942, 2: 0.355014},
't': {0: 0.0, 1: 1.0, 2: 2.0}})

merged = pd.concat((xyt, xyt.shift(-1)), axis=1, keys=('a', 'b')).iloc[:-1]
print(merged)
merged :
          a                        b               
x y t x y t
0 1.237007 -1.035837 0.0 -1.782458 1.042942 1.0
1 -1.782458 1.042942 1.0 0.063130 0.355014 2.0

关于pandas - 在 Pandas 中连接连续行的简洁方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67449430/

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