こんにちは、Kaggle Titanic のデータを扱っています。以前は複数の列で作業していましたが、うまくいきapply(lambda x: x.upper())
ません。
データは Google ドライブに保存しました。ここからダウンロードできます。
object
すべてのタイプの各列でテストします(str
間違っている場合は修正してください)。しかし、一部のコラムは報告しています'float' object has no attribute 'upper'
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
train = pd.read_csv('train.csv', header=0)
train.ix[:,['Name', 'Sex', 'Ticket', 'Cabin', 'Embarked']].dtypes
# Name object
# Sex object
# Ticket object
# Cabin object
# Embarked object
# dtype: object
train.ix[:,['Name', 'Sex', 'Ticket', 'Cabin', 'Embarked']].apply(lambda x: x.upper())
# not work
# try each column
train.ix[:,'Name'].apply(lambda x: x.upper()) # works
train.ix[:,'Sex'].apply(lambda x: x.upper()) # works
train.ix[:,'Ticket'].apply(lambda x: x.upper()) # works
train.ix[:,'Cabin'].apply(lambda x: x.upper()) # AttributeError: 'float' object has no attribute 'upper'
train.ix[:,'Embarked'].apply(lambda x: x.upper()) # AttributeError: 'float' object has no attribute 'upper'
どんな助けでも大歓迎です。ありがとう!