将两个数字数据框列合并为一列元组

Thi*_*our 3 python tuples dataframe pandas

我想创建一个新列,将两列组合在一起。我在互联网上查看但一无所获。我该怎么办:

前任:

A B
50.631456 5.57871    

C
(50.631456, 5.57871)
Run Code Online (Sandbox Code Playgroud)

jpp*_*jpp 6

list+zip是一种有效的方法:

df['C'] = list(zip(df.A, df.B))

#            A        B                     C
# 0  50.631456  5.57871  (50.631456, 5.57871)
Run Code Online (Sandbox Code Playgroud)

表现

正如预期的那样,df.apply对于大型数据帧,方法是循环且低效的,尤其是与lambda.

df = pd.concat([df]*10000)

%timeit list(zip(df.A, df.B))                  # 3.14ms
%timeit df.apply(tuple, axis=1)                # 378ms
%timeit df.apply(lambda x: (x.A,x.B), axis=1)  # 577ms
Run Code Online (Sandbox Code Playgroud)