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')
由于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)
| 归档时间: |
|
| 查看次数: |
785 次 |
| 最近记录: |