pandasをpdとしてインポートし、以下のコードを実行すると、次の結果が得られます。
コード:
traindataset = pd.read_csv('/Users/train.csv')
print traindataset.dtypes
print traindataset.shape
print traindataset.iloc[25,3]
traindataset.dropna(how='any')
print traindataset.iloc[25,3]
print traindataset.shape
出力
TripType int64
VisitNumber int64
Weekday object
Upc float64
ScanCount int64
DepartmentDescription object
FinelineNumber float64
dtype: object
(647054, 7)
nan
nan
(647054, 7)
[Finished in 2.2s]
結果から、行番号は変更されず、データフレームに NAN が残っているため、dropna 行は機能しません。どうしてそうなるのでしょうか? 私は今、頭がおかしくなりそうです。
ベストアンサー1
読む必要があるドキュメント(強調追加):
戻る指定された軸上のラベルを持つオブジェクトは省略されます
dropna
戻り値1つの新しいDataFrame。既存の DataFrame を変更したい場合は、ドキュメントをさらに読むだけです。
所定の位置に: ブール値、デフォルトは False
True の場合、インプレースで操作を実行し、None を返します。
したがって、それをその場で変更するには、 を実行しますtraindataset.dropna(how='any', inplace=True)
。