2017-12-27 18 views
0

私はPythonには新しく、小さなプロジェクトで作業しようとしていて少し混乱しました。pandasのcsvでのpythonカウントの出現

私はこのようになります2つのCSVファイルがあります:私はbasiclyやろうとしていることはどのように多くのちょうど数えることである

super_car_name 
Ferrari 
BMW 
Mercedes 

all_cars:

first_Car,second_car 
Mazda, Skoda 
Ferrari, Volkswagen 
Volkswagen, Toyota 
BMW, Ferrari 
BMW, Mercedes 

super_carsをファイル1に表示されているファイル2の車を乗算します。車がファイル1にのみ表示され、ファイル2には表示されていない場合、私はそれを望んでいません。

私は私のサンプルファイルに基づいてやろうとしていることである:

Ferrari : 2 
BMY : 2 
Mercedes : 1 

答えて

2

私はそれをこのようにしてください:

In [220]: d1.stack().value_counts().to_frame('car').loc[d2.super_car_name] 
Out[220]: 
      car 
Ferrari  2 
BMW   2 
Mercedes 1 

d1d2 - あなたのソースデータフレーム( pd.read_csv()メソッドを使用してCSVファイルから簡単に解析できます)。

In [218]: d1 
Out[218]: 
    first_Car second_car 
0  Mazda  Skoda 
1  Ferrari Volkswagen 
2 Volkswagen  Toyota 
3   BMW  Ferrari 
4   BMW Mercedes 

In [219]: d2 
Out[219]: 
    super_car_name 
0  Ferrari 
1   BMW 
2  Mercedes 
2
df1[df1.isin(df2.super_car_name.values)].stack().value_counts() 

Ferrari  2 
BMW   2 
Mercedes 1 
dtype: int64 
:あなたは一つのテーブルですべてを取得するには、その後、 stackvalue_countsをマッチを見つけるために isinを使用することができます
関連する問題