2016-12-07 3 views
1

の列名なしで私はデータセットを持って、旋回しパンダデータフレームから列名を取得します:は、元のリスト

df = (pd.read_csv('orcs.csv')) 

df_wanted = pd.pivot_table(

df, 

index=['c'], 

columns=['a'], 

values=['b'] 

)} 

a b c 
99-01-11 8 367235 
99-01-11 5 419895 
99-01-11 1 992194 
99-03-23 4 419895 
99-04-30 1 992194 
99-06-02 9 419895 
99-08-08 2 367235 
99-08-12 3 419895 
99-08-17 10 992194 
99-10-22 3 419895 
99-12-04 4 992194 
00-03-04 2 367235 
00-09-29 9 367235 
00-09-30 9 367235 

私は、次のコードを使用して、ピボットテーブルにそれを変更しました私の目標:私はピボットテーブルの列名のリストを取得しようとしています。言い換えれば、私はこれを得ることを試みている:

[1999-01-11]、[1999-01-11]、[1999-03-23]、[1999] -04-30' 、 '1999年6月2日'、 '1999年8月8日']

私は、コードのこの部分を使用してみました:

y= df_wanted.columns.tolist() 

を..しかし、これは私のリストを与えます( 'c'、'00 -03-04 ')、(' c '、'00 -09-29')、( 'c'、 ''、 ' - ') ( 'c'、'99 -04-30 ')、(' c '、'99 -03-23')、( 'c' ( 'c'、'99 -08-02 ')、(' c '、'99 -08-08')、( 'c'、'99 -08-12 ' 08-17 ')、(' c '、'99 -10-22')、( 'c'、'99 -12-04' )]

Iは、削除しようとした 'よう

def remove_values_from_list(the_list, val): 
     while val in the_list: 
      the_list.remove(val) 
remove_values_from_list(y, 'c') 

などの様々な方法でCを' が、運を持っていません。誰もがこの問題を解決する方法を知っていますか? PS。折れ線グラフのy値の配列として使用するので、リストの順序を保持することは重要です。

多くのありがとうございます。

答えて

1

最高のは、最初の列の回避MultiIndexためpivot_table[]を省略し、その後stringにキャストでtolist()を使用します。これは完全に働いた

df_wanted = pd.pivot_table(df,index='c',columns='a',values='b') 
#print (df_wanted) 

print (df_wanted.columns.astype(str).tolist()) 
['1999-01-11', '1999-03-23', '1999-04-30', '1999-06-02', '1999-08-08', 
'1999-08-12', '1999-08-17', '1999-10-22', '1999-12-04', 
'2000-03-04', '2000-09-29', '2000-09-30'] 
+0

。私はあなたがその質問にすばやく答えたことに感謝し、はっきりと丁寧でした。私の肌を救ってくれてありがとう。 – oymonk

+0

お受け取りいただきありがとうございます!もう1つのソリューションは、第2レベルのマルチインデックスを選択することができますが、それはより複雑です。いい日! – jezrael

関連する問題