1
私はカスタムソートされたDataFrameを作成したいと思います。これを行うには、pandas.Categorical()
を使用しましたが、私はグループのの値を返します。pandasでは、グループ化でカテゴリ型の列を使用できないのはなぜですか?
# import the pandas module
import pandas as pd
# Create an example dataframe
raw_data = {'Date': ['2016-05-13', '2016-05-13', '2016-05-13', '2016-05-13', '2016-05-13','2016-05-13', '2016-05-13', '2016-05-13', '2016-05-13', '2016-05-13', '2016-05-13', '2016-05-13', '2016-05-13', '2016-05-13', '2016-05-13', '2016-05-13', '2016-05-13'],
'Portfolio': ['A', 'A', 'A', 'A', 'A', 'A', 'B', 'B','B', 'B', 'B', 'C', 'C', 'C', 'C', 'C', 'C'],
'Duration': [1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3],
'Yield': [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1],}
df = pd.DataFrame(raw_data, columns = ['Date', 'Portfolio', 'Duration', 'Yield'])
df['Portfolio'] = pd.Categorical(df['Portfolio'],['C', 'B', 'A'])
df=df.sort_values('Portfolio')
dfs = df.groupby(['Date','Portfolio'], as_index =False).sum()
print(dfs)
Date Portfolio Duration Yield
Date Portfolio
13/05/2016 C NaN NaN NaN NaN
B NaN NaN NaN NaN
A NaN NaN NaN NaN
なぜこれを克服できますか?
また、SettingWithCopyWarning
は、Categoricalの方がより良いイディオムですか?
これは、他の「日付」列との組み合わせに関連するバグ/(偽の作業を行い=唯一のポートフォリオによってグループ化またはas_indexを使用していないとの両方)as_index =は 'false'使用しているようです。 https://github.com/pydata/pandas/issuesで問題を報告しますか? – joris