Python 对整个数据集重复相同的过程

Python 对整个数据集重复相同的过程,python,pandas,Python,Pandas,给定数据帧df: 1 1.1 2 2.1 ... 1600 1600.1 0 45.1024 7.2365 45.8769 7.1937 34.1072 8.4643 1 43.1024 8.9645 32.5798 7.7500 33.1072 9.3564 2 42.1024 6.

给定数据帧df:

        1           1.1     2           2.1     ...     1600      1600.1
    0   45.1024     7.2365  45.8769     7.1937          34.1072   8.4643
    1   43.1024     8.9645  32.5798     7.7500          33.1072   9.3564
    2   42.1024     6.7498  25.1027     7.3496          26.1072   6.3665
我执行了以下操作:我选择了第一个
(1和1.1)
耦合并创建了一个数组。然后我对以下几对
(2和2.1)
做了同样的操作

最后的手术是:

Q_final = list(zip(Q[0], Q[1]))
P_final = list(zip(P[0], P[1]))
现在我想对整个数据集执行此操作。但这需要很多时间。你知道如何在短时间内重复这个吗

编辑

毕竟我在做什么

df = similaritymeasures.frechet_dist(P_final, Q_final)

所以我想得到一个包含所有列组合的新数据集(可能)

您可能不想创建1600个单独的变量。将其存储在容器中,如
dict
,其中键引用原始列句柄:

{idx: list(zip(gp.iloc[:, 0], gp.iloc[:, 1])) 
  for idx, gp in df.groupby(df.columns.str.split('.').str[0], axis=1)}
# or 
{idx: [*map(tuple, gp.to_numpy())] 
  for idx, gp in df.groupby(df.columns.str.split('.').str[0], axis=1)}
样品
一种简单的方法是跨轴1使用
agg

def f(s):
  s = iter(s)
  return list(zip(s,s))

agg = df.agg(f,1)
然后使用
.str
进行检索。比如说,

agg.str[0] # P_final
agg.str[1] # Q_final
.
.
.

此外,如果您需要每两列,则可以跨
axis=1
执行
groupby

df.groupby(np.arange(len(df.columns))//2, axis=1).apply(lambda s: s.agg(list,1))  
def f(s):
  s = iter(s)
  return list(zip(s,s))

agg = df.agg(f,1)
agg.str[0] # P_final
agg.str[1] # Q_final
.
.
.
df.groupby(np.arange(len(df.columns))//2, axis=1).apply(lambda s: s.agg(list,1))