2017-07-11 5 views
1

私は400までの多くの列を持つCSVを持っています。サンプルデータは、次の https://pastebin.com/RgcE69KCデータフレーム内のアイテムを検索してPythonで列を転置するPandas

User ['g3/af111c' 'g3/af112c' 'g4/af21c' 'g5/af34c' 'af43/af432c' 'cb3b/cb37c' 
'fv52/fv522c' 'fv52/fv523c'] 
+1

csvまたはデータフレームのダンプを投稿しても構いませんか? –

+0

私はあなたが望むものを理解するのに本当に問題があります – Skirrebattie

+2

@danielmwai - 'User'、' User1'情報について説明できますか?小さなデータサンプル(10列、3行、希望出力)を作成すると役立つかもしれません。ありがとう。 – jezrael

答えて

1

になっている

の下に、私はあなたが必要だと思うのデータの番号の例を表示することができます。

#read sample data - omit first column and last row (because it seems wrong data) 
df = pd.read_csv('https://pastebin.com/raw/RgcE69KC', nrows=9, usecols=range(1,12)) 
#add data for another user for better sample 
df.loc[range(5), 'User'] = 'Jan' 
print (df) 
    User cb43/cb431c cb43/cb431j cb43/cb432c cb43/cb433c cb43/cb434c \ 
0 Jan   n/a   n/a   yes   yes   yes 
1 Jan   n/a   n/a   n/a   n/a   n/a 
2 Jan   n/a   n/a   yes   yes   yes 
3 Jan   n/a   n/a   yes   yes   yes 
4 Jan   n/a   n/a   yes   yes   yes 
5 Dan   n/a   n/a   n/a   n/a   n/a 
6 Dan   n/a   n/a   n/a   n/a   n/a 
7 Dan   n/a   n/a   n/a   n/a   n/a 
8 Dan   n/a   n/a   yes   yes   yes 

    cb43/cb435c cb43/cb436c cb43/cb437c   cb43/cb437j cb44/cb441c 
0   yes   yes   no No records available   yes 
1   n/a   n/a   n/a     n/a   n/a 
2   yes   yes   no No records available   yes 
3   yes   yes   yes No fertilizer applied   yes 
4   yes   yes   yes No fertilizer applied   yes 
5   n/a   n/a   n/a     n/a   n/a 
6   n/a   n/a   n/a     n/a   n/a 
7   n/a   n/a   n/a     n/a   n/a 
8   yes   yes   na No fertilizer applied   yes 

df = df.set_index('User') 
#replace all non 'yes' and 'no' values to `NaN` and reshape 
df = df.where(df.isin(['yes','no'])).stack().reset_index(name='val') 
#get for each User unique columns names 
df = df.groupby('User')['level_1'].unique().reset_index(name='un_val') 
print (df) 
    User            un_val 
0 Dan [cb43/cb432c, cb43/cb433c, cb43/cb434c, cb43/c... 
1 Jan [cb43/cb432c, cb43/cb433c, cb43/cb434c, cb43/c... 
+0

を使用してデータの上にpastebinへのリンクを追加しました。 nos – danielmwai

+0

申し訳ありませんが、わかっているか分かりません。あなたのデータ 'df = pd.read_csv( 'https://pastebin.com/raw/RgcE69KC'、nrows = 9、usecols = range(1,12))'を使用する場合、何が望ましい出力ですか? 'Dan'、別のユーザーと列名のリストが必要ですか?はい、いいえ値だけですか? – jezrael

+0

ダンはさまざまなユーザーの表象で、列は質問で、ダンごとにグループ化したい(質問はcb43からcb44以上のもの)、次にpanda i can cb43-to-cb44 – danielmwai

関連する問題