2016-03-20 5 views
1

のデータフレームに変換し、私は、列を持っている「starCustomer」:特定のデータセットではPythonの

[0, X, 0, 0, X, 0, X,...] 

ある人であれば、各観測は0が含まれていますがスター顧客ではなく、その人物であればXです。私は代わりに1として、各Xを表現するために良いアイデアだろうと思ったので、私は次のコードを書いた:

Star = df['starCustomer'] 
New_Star = [1 if x == 'X', else 0 for x in Star] 

を、我々はそれをしたいしかし、それは、New_Starがデータフレームではないことを、私の知る限りでありますすることが。しかし、私は次のエラーを取得する

Star = pd.DataFrame(New_Star) 

TypeError: 'list' object is not callable 

誰もがこのことについて間違って何にお知らせすることはできますか?だから、私はこの次のコードを実行してみてください

+0

をpd.Seriesを返します 'Star'は、いずれかのデータフレームではありません。それはシリーズです。 – BrenBarn

答えて

0

私は右のあなたを理解していれば、あなただけのこの操作を行うことができます:

New_Star = Star.map({0: 0, "X": 1}) 
+0

私はそれを試みましたが、データフレームの問題を処理しませんでした!また、データ自体を見るためにNew_Starを入力すると、isinstance()に関するエラーが発生します。 –

+0

実際には、構文のいくつかの並べ替えで、このアプローチは魅力的に機能します。ありがとうございました! –

1

データフレームの列は、あなたが最初に新しい列を追加することができますクラスpd.Series

の目的でありますデータフレーム:

df['New_Star'] = df.apply(lambda x: 1 if x == 'X' else 0 , axis=1) 

あなたは今でカラムNew_Star上のみからなるデータフレームを取得することができます

new_star_df = df[['New_Star']] 

注シングルブラケットとの二重括弧は、あなたがあなたの例では、ないpd.DataFrame

関連する問題