Aşağıdaki dataframe'i .csv dosyasından indeks olan "Date" sütunuyla okudum. Günler satırlarda ve sütunlar o saat için değerleri gösterir.Python pandaları veri çerçevesi nasıl yeniden düzenlenir?
> Date h1 h2 h3 h4 ... h24
> 14.03.2013 60 50 52 49 ... 73
Ben tarih/saat ile bir indeks sütun ve ben kullanarak bu çalışıyordum bir dizi
>Date/Time Value
>14.03.2013 00:00:00 60
>14.03.2013 01:00:00 50
>14.03.2013 02:00:00 52
>14.03.2013 03:00:00 49
>.
>.
>.
>14.03.2013 23:00:00 73
değerlerle bir sütun olacak şekilde, bu şekilde düzenlemek istiyoruz
Dataframe'den geçmek için iki döngü. Pandalarda bunu yapmanın daha kolay bir yolu var mı?
import pandas as pd
from datetime import timedelta
df = pd.read_csv("hourmelt.csv", sep=r"\s+")
df = pd.melt(df, id_vars=["Date"])
df = df.rename(columns={'variable': 'hour'})
df['hour'] = df['hour'].apply(lambda x: int(x.lstrip('h'))-1)
combined = df.apply(lambda x:
pd.to_datetime(x['Date'], dayfirst=True) +
timedelta(hours=int(x['hour'])), axis=1)
df['Date'] = combined
del df['hour']
df = df.sort("Date")
Bazı açıklama aşağıdaki gibidir:
Güzel çözüm! Df ['hour'] 'i birleştirebilirsin.Uygula (...) 've' kombine = ...' satırlarını df ['Date'] + = df ['hour'] içine alabilirsin.Uygula (lambda x: timedelta (saat = int (x.lstrip ('h')) - 1)) '. – unutbu
Harika çözüm. Çok teşekkürler. Tarihi İndeks olarak ayarladım ve mükemmel çalışıyor. > df = df.set_index ('Tarih') –