簡體   English   中英

合並兩列數據框的值與不同的dtypes

[英]Merging values of two columns of dataframe with different dtypes

我有以下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

有一個簡單的方法嗎?

df.astype(str).sum(1)
Out[489]: 
0    A1
1    B2
2    C3
dtype: object
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

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM