连接数据框的两列值

Ash*_*'Sa 1 python dataframe pandas

我有一个如下的数据框:

     Name  Age
0    Alex   10
1     Bob   12
2  Clarke   13
Run Code Online (Sandbox Code Playgroud)

数据框创建为:

data = [['Alex',10],['Bob',12],['Clarke',13]]
df = pd.DataFrame(data,columns=['Name','Age'])
Run Code Online (Sandbox Code Playgroud)

我想执行两列的字符串连接为:

     Name      Age
0    10 Alex   10 
1    12 Bob    12 
2    13 Clarke 13 
Run Code Online (Sandbox Code Playgroud)

我尝试使用df["Name"] = df["Age"]+" "+df["Name"],导致以下错误:

回溯(最近一次调用):文件“”,第 1 行,在文件“/anaconda3/envs/env1/lib/python3.6/site-packages/pandas/core/ops/common.py”,第 65 行,在new_method 返回方法(self, other) File "/anaconda3/envs/env1/lib/python3.6/site-packages/pandas/core/ops/ INIT.py”,第 343 行,在包装结果 = algorithm_op(lvalues, rvalues, op) 文件“/anaconda3/envs/env1/lib/python3.6/site-packages/pandas/core/ops/array_ops.py”中,行189,在 algorithm_op res_values = na_arithmetic_op(lvalues, rvalues, op) 文件“/anaconda3/envs/env1/lib/python3.6/site-packages/pandas/core/ops/array_ops.py”,第 149 行,在 na_arithmetic_op 结果= masked_arith_op(left, right, op) 文件“/anaconda3/envs/env1/lib/python3.6/site-packages/pandas/core/ops/array_ops.py”,第 111 行,在 masked_arith_op 结果[mask] = op (xrav[mask], y) numpy.core._exceptions.UFuncTypeError: ufunc 'add' 不包含具有签名匹配类型的循环 (dtype('<U21'), dtype('<U21')) -> dtype( '<U21')

May*_*wal 5

由于Age是一int列,您需要将其转换为str使用astype

In [2511]: df['Name'] = df["Age"].astype(str) + " " + df["Name"]

In [2511]: df['Name']
Out[2511]: 
0      10 Alex
1       12 Bob
2    13 Clarke
Run Code Online (Sandbox Code Playgroud)