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
無事に結合できた。