2

私はパンダテーブルdfを持っています:

           course
ID
1      physics101
1       astronomy     
2           maths
2         another

次の結果を持つテーブルを導出したいと思います。

         physics101    astronomy     maths    another
ID
1              True         True    False        False
2             False        False     True         True

どんな操作ですか?

(df の要素は定義済みのクラスのセットです)

4

2 に答える 2

3

使用できますcrosstab()

import pandas as pd
from StringIO import StringIO
data = StringIO("""ID       course
1      physics101
1       astronomy     
2           maths
2         another""")
df = pd.read_csv(data, delim_whitespace=True)
pd.crosstab(df.ID, df.course) > 0

出力:

course another astronomy  maths physics101
ID                                        
1        False      True  False       True
2         True     False   True      False
于 2013-08-02T06:52:04.843 に答える
1

これが最善の方法かどうかわからない場合は、pivot_tableを試してください

In [65]: pd.pivot_table(df.reset_index(), rows='ID', \
                        cols='course', aggfunc=lambda x:True, fill_value=False)
Out[65]: 
course another astronomy  maths physics101
ID                                        
1        False      True  False       True
2         True     False   True      False
于 2013-08-02T06:37:16.173 に答える