2017-11-22 13 views
2

私は現在、次のような値持つCSV形式でデータセットを模索しています:クラスがあなたのように各例に可変長に割り当てられているインスタンスごとのクラスにインスタンスごとのマルチクラスを変換する - Pythonの

example 1, class 1 
example 2, class 1, class 2 
example 3, class 2, 
example 4, class 1, class 2, class 4 

見ることができます。このデータをインスタンスごとに1つのクラスに変換するのに役立つメソッド(numpyまたはpandasを使用)がありますか?次のように入力します。

example 1, class 1 
example 2, class 1 
example 2, class 2 
example 3, class 2 
example 4, class 1 
example 4, class 2 
example 4, class 4 

これを実行すると、ニューラルネットワークモデルに簡単に入力できます。私はパンダでいくつかの方法を試しましたが、これまでのところ運がありません。

答えて

3

私はPythonの文字列の操作と補足を使用したいと思います。

m = lambda x: map(str.strip, x.split(',')) 

with open('test.csv') as f: 
    df = pd.DataFrame(
     [[x, y] for x, *ys in map(m, f.readlines()) for y in ys if y], 
     columns=['Example', 'Class'] 
    ) 

df 

    Example Class 
0 example 1 class 1 
1 example 2 class 1 
2 example 2 class 2 
3 example 3 class 2 
4 example 4 class 1 
5 example 4 class 2 
6 example 4 class 4 
+0

私が探していたものです。ありがとうございます –

+2

回答が役に立ちましたら、[accept](https://stackoverflow.com/help/someone-answers)を忘れないようにしてください。答えの横にあるチェックマーク( '✓')をクリックすると、灰色で塗りつぶされた。ありがとう。 – jezrael

関連する問題