我有以下pandas dataframe
:
import pandas as pd
df = pd.DataFrame({"pos": [1, 2, 3], "chain": ["A", "B", "C"]})
,并提供:
chain pos
0 A 1
1 B 2
2 C 3
和df.types
:
chain object
pos int64
dtype: object
我正在寻找一种方法来合并系列df["chain"]
和df["pos"]
以获得以下内容:
chain+pos
0 A1
1 B2
2 C3
和df.dtypes
:
chain+pos object
dtype: object
有一种简单的方法吗?
答案 0 :(得分:4)
df.astype(str).sum(1)
Out[489]:
0 A1
1 B2
2 C3
dtype: object
答案 1 :(得分:3)
In [34]: df['chain'] += df.pop('pos').astype(str)
In [35]: df
Out[35]:
chain
0 A1
1 B2
2 C3
重命名列:
In [37]: df = df.rename(columns={'chain':'chain+pos'})
In [38]: df
Out[38]:
chain+pos
0 A1
1 B2
2 C3
答案 2 :(得分:2)
MaxU的解决方案非常有效。否则你也可以使用以下
df["chain+pos"] = df['chain'] + df['pos'].map(str)
在此之后,您必须删除df [' chain']和df [' pos']以获得所需的结果。
-----------------编辑
正如@MaxU在下面的评论中所指出的,这是一种实现理想结果的简明方法 -
df['chain+pos'] = df.pop('chain') + df.pop('pos').map(str)