2013-04-01 4 views
15

Bir CSV dosyasından DataFrame'e aktarılan bir veri tablom var.Python Pandalar - Sütun dizini için sütun Sütun

Veriler, yaklaşık 10 kategorik alan, 1 aylık sütun (tarih saat biçiminde) ve geri kalanı veri dizisini içerir.

Tarih sütununu sütun eksenindeki bir dizine nasıl dönüştürürüm?

+1

birlikte işlevini çağırmak, [read_csv] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.io.parsers.read_csv.html) kendisi yapar 'index_col' ve' parse_dates = True' –

cevap

22

Sen set_index kullanabilirsiniz: Örneğin

df.set_index('month') 

:

In [1]: df = pd.DataFrame([[1, datetime(2011,1,1)], [2, datetime(2011,1,2)]], columns=['a', 'b']) 

In [2]: df 
Out[2]: 
    a     b 
0 1 2011-01-01 00:00:00 
1 2 2011-01-02 00:00:00 

In [3]: df.set_index('b') 
Out[3]: 
      a 
b    
2011-01-01 1 
2011-01-02 2 
+0

Teşekkürler Andy Dizini diğer tarih boyunca geçecek şekilde ayarlayabilir miyim? Bu grup değerler mi olacak? – MrHopko

+1

Sahip olduğunuz bir DataFrame örneğini verebilir misiniz? Sütun dizini bir tarih sütunu yapmak için ne kadar mantıklı geldiğinden emin değilim ... Değerleri gruplandırmaz, bu bir sütunu indeks yapar. :) –

+0

Verilerin, her sütunun 1 ay olmasını sağlayacak şekilde düzenlenmesini istiyorum. Tablodaki her satır farklı bir zaman dizisini temsil eder. bu mantıklı mı? Bir tablo ile gösterirdim ama bu siteye nasıl bir tablo ekleyeceğimi bilmiyorum. – MrHopko

4

Ben sadece reset_index tarafından çözdük benzer bir sorun vardı.

ind_df=df.set_index(['A', 'B'])

df.reset_index(level=0, inplace=True) 
3

vaktinden tarih sütunun adını biliyor ve zaman serisi sütununda göre otomatik endeksini ayarlamak için gerekmiyorsa: Ama set_index veya reset_index kullanabilirsiniz veri

df.set_index((df.select_dtypes(include=[np.datetime64]).columns).tolist())