2016-10-28 2 views
1

私はPythonでCSVファイルを処理し、データフレーム内でさまざまな方法でデータを操作するためにPandasを使用していくつかのコードを書いています。現時点では、スクリプトを使って私はすでに書いた、df.head()は、次のデータフレーム(簡体字)を呼び出す:私は今、何をしたいかPython/Pandasドロップコラム

 Facility Facility Servers  Servers 
Date 27/10/2016 28/10/2016 27/10/2016 28/10/2016 
00:30 7   6   5   5 
01:00 4   5   5   7 
01:30 7   8   6   5 
02:00 7   2   5   5 

は含まれていない列を削除することです特定の日付。私は28/10/2016を含まないすべての列を削除したいのであれば、この場合には、その結果は次のようになります。

 Facility Servers  
Date 28/10/2016 28/10/2016 
00:30 6   5 
01:00 5   7 
01:30 8   5 
02:00 2   5 

私は読書をたくさん行われ、StackOverflowの上で様々な記事を確認することができませんかなりいます適切な解決策を見つける。誰かが何らかの条件文を使用して28/10/2016が表示されないデータフレーム内の列を削除する方法を知っていますか?

答えて

1

私はあなたが最初DataFrameの最初の行からMultiIndex.from_arraysを作成し、その後、df.iloc[1:]で最初の行を削除する必要があると思う:

print (df.columns) 
Index(['Facility', 'Facility', 'Servers', 'Servers'], dtype='object') 

print (df.iloc[0]) 
Facility 27/10/2016 
Facility 28/10/2016 
Servers  27/10/2016 
Servers  28/10/2016 
Name: Date, dtype: object 

df.columns = pd.MultiIndex.from_arrays([df.columns, pd.to_datetime(df.iloc[0])]) 
df = df.iloc[1:] 
print (df) 
     Facility    Servers   
Date 2016-10-27 2016-10-28 2016-10-27 2016-10-28 
00:30   7   6   5   5 
01:00   4   5   5   7 
01:30   7   8   6   5 
02:00   7   2   5   5 

そして最後に使用slicers

idx = pd.IndexSlice 
print (df.loc[:,idx[:,['2016-10-28']]]) 
     Facility Servers 
Date 2016-10-28 2016-10-28 
00:30   6   5 
01:00   5   7 
01:30   8   5 
02:00   2   5 
+0

感謝。正確に私が必要としたもの。最後のコードをdf = df.loc [:、idx [:、['2016-10-28']]に修正しました。 – pottolom

+0

はい;)受け付けていただきありがとうございます! – jezrael