データフレームをピボットテーブルに変換するときにパンダの動作が奇妙になりました。Pandas Pivotテーブルがfloatをintに変換する
import pandas as pd
df = pd.DataFrame({'car_id': {0: 'Trabant', 1: 'Buick', 2: 'Dodge'}, 'car_order': {0: 2, 1: 1, 2: 14}, 'car_name': {0: 'Trabant', 1: 'Buick', 2: 'Dodge'}, 'car_rank': {0: 111111317.29, 1: 1111112324.0, 2: 1111112324.5}})
table = df.pivot_table(index=['car_id', 'car_name', 'car_order'], columns=[],values=['car_rank'], fill_value='',dropna=True)
print table
df1 = pd.DataFrame({'car_id': {0: 'Trabant', 1: 'Buick', 2: 'Dodge'}, 'car_order': {0: 2, 1: 1, 2: 14}, 'car_name': {0: 'Trabant', 1: 'Buick', 2: 'Dodge'}, 'car_rank': {0: 17.29, 1: 24.0, 2: 24.5}})
table1 = df1.pivot_table(index=['car_id', 'car_name', 'car_order'], columns=[],values=['car_rank'], fill_value='',dropna=True)
print table1
結果出力:
Table
car_rank
car_id car_name car_order
Buick Buick 1 1111112324
Dodge Dodge 14 1111112324
Trabant Trabant 2 111111317
Table 1
car_rank
car_id car_name car_order
Buick Buick 1 24.00
Dodge Dodge 14 24.50
Trabant Trabant 2 17.29
あなたはなぜ表の値がint型に変換されている知っていますし、表のために1値はfloatとして滞在しますか?
ソースコードpivot_table()
行のpandas/tools/pivot.py
定義:141-142:
if fill_value is not None:
table = table.fillna(value=fill_value, downcast='infer')
パンダ0.18.0、ここでのpython 2.7.9
dtypesの値をチェックすると、floatではなくintが表示されます。 – jurkij