简单适用于连接熊猫柱



如何使这个程序工作?结果应该是串联的整数:

import pandas as pd
d = pd.DataFrame({'A': range(5), 'B': range(5, 10)})
f = lambda x, y: str(x) + str(y)
d[['A', 'B']].apply(f, axis = 1)

谢谢和亲切的问候

在与DataFrame一起应用和axis=1每个循环生成Series

f = lambda x: str(x.A) + str(x.B)
a = d[['A', 'B']].apply(f, axis = 1)

非常相似是可以先将两列转换为 string s:

f = lambda x: x.A + x.B
a = d[['A', 'B']].astype(str).apply(f, axis = 1)

您可以通过自定义功能检查处理:

def f(x):
    print (x)
    print (x.A)
    print (x.B)
    return str(x.A) + str(x.B)
a = d[['A', 'B']].apply(f, axis = 1)
A    0
B    5
Name: 0, dtype: int64
0
5
A    1
B    6
Name: 1, dtype: int64
1
6
A    2
B    7
Name: 2, dtype: int64
2
7
A    3
B    8
Name: 3, dtype: int64
3
8
A    4
B    9
Name: 4, dtype: int64
4
9

但更好/更快的是与 + 连接,但首先将数字列转换为 string s:

a = d['A'].astype(str) + d['B'].astype(str)

print (a)
0    05
1    16
2    27
3    38
4    49
dtype: object

为什么不使用更简单的东西,比如:

d['A'].apply(str) + d['B'].apply(str)

最新更新