数値の列と文字列の列を結合

pandasで数値の列と文字列を結合する場合、数値をobjectに変換してから結合する必要がある。

例えば

import pandas as pd
df = pd.DataFrame({'ID': [1, 2, 3, 3, 4, 5, 5],
                   'Name': ['Noto', 'Hisakawa', 'Kouda', 'Hayashibara', 'sakamoto', 'tamura', 'mitsuishi'],
                   'score':[100, 50, 80, 50, 100, 70, 55]})
df

	ID	Name	score
0	1	Noto	100
1	2	Hisakawa	50
2	3	Kouda	80
3	3	Hayashibara	50
4	4	sakamoto	100
5	5	tamura	70
6	5	mitsuishi	55

型を確認する

df.dtypes

ID        int64
Name     object
score     int64
dtype: object

数値列がintになっている。これをそのまま結合すると、怒られる。

df['Name'] + df['score']

TypeError: can only concatenate str (not "int") to str

よって、一度数値型の列を文字列型に変換をかけてあげる。

df['Name'] + df['score'].astype(str)

0          Noto100
1       Hisakawa50
2          Kouda80
3    Hayashibara50
4      sakamoto100
5         tamura70
6      mitsuishi55
dtype: object

無事に結合できた。

このサイトの主
投稿を作成しました 98

関連投稿

検索語を上に入力し、 Enter キーを押して検索します。キャンセルするには ESC を押してください。

トップに戻る