2
次のことを行うことができます(最小限のコードの意味での)より良い方法があります:それは多少この道を行く必要がありますので列挙の数値に列を変換します。列挙辞書のキーと値の列のデータを変換する
- はが
- の代わりにキーと値の結果を使用して値を持つキーを戻す
- キー値
- でenumrated辞書を作る列に項目のを設定してもらいます新しい列のデータ
だからここに誰もが私は関数にget_color_valを書いて避けることができることを行うための古典的な方法を示すことができる場合、私は今日と不思議仕事だ:
import pandas as pd
cars = pd.DataFrame({"car_name": ["BMW","BMW","ACCURA","ACCURA","ACCURA","BMW","BMW","BMW"],"color":["RED","RED","RED","RED","GREEN","BLACK","BLUE","BLUE"]})
color_dict = dict(enumerate(set(cars["color"])))
color_dict = dict((y,x) for x,y in color_dict.iteritems())
def get_color_val(row):
my_key = row["color"]
my_value = color_dict.get(my_key)
return my_value
cars["color_val"] = cars.apply(get_color_val, axis=1)
cars = cars.drop("color",1)
print cars
結果
Before------------
car_name color
0 BMW RED
1 BMW RED
2 ACCURA RED
3 ACCURA RED
4 ACCURA GREEN
5 BMW BLACK
6 BMW BLUE
7 BMW BLUE
After------------
car_name color_val
0 BMW 3
1 BMW 3
2 ACCURA 3
3 ACCURA 3
4 ACCURA 2
5 BMW 1
6 BMW 0
7 BMW 0
1行に?!?!?!うわー、ありがとう! – adhg
@adhg、ええ、パンダを愛するもう一つの理由...;) – MaxU