2016-04-24 4 views
-1

Ich versuche ein Datum in einen Wochentag zu konvertieren - mindestens die Wochentagsnummer, 0 für Montag, 1 für Dienstag etc Das Datum ist ein Objektdatentyp.Pandas: Erstellen Sie eine 'Weekday' DataFrame Spalte durch Konvertieren des Datums (MM/TT/JJ) an Wochentag

Wenn ich versuche, Informationen/Hilfe zu finden Datum Wochentag zu konvertieren oder das Hinzufügen einer neuen Datenrahmen Spalte namens ‚Wochentag‘ und macht die Umwandlung in dort, kann ich nichts über Python finden

ich diese gefunden :

data.loc[:,'weekday'] = data.index.weekday 

, aber es scheint nicht zu funktionieren, wie ich diesen Fehler:

AttributeError: 'Int64Index' object has no attribute 'weekday' 

es gibt keine einfachen Beispiele zu finden. Kann jemand helfen?

+0

können Sie bitte etwas mehr von Ihrem Code? Woher kommen Daten? – WreckeR

+0

Das ist alles was ich gerade habe; Der Code ist, was ich suche .. Die Daten sind Hunderttausende von Aufzeichnungen .. – Theant6118

+0

Ich vermute, Sie verwenden 'Pandas'. Ich habe dieses Tag hinzugefügt, damit hoffentlich jemand, der dieses Modul kennt, helfen kann. – WreckeR

Antwort

2

Blick auf bereitgestellt Teile des Codes und die Fehlermeldung kann man sehen, dass Sie Tag von integer Index zu extrahieren versuchen, was schwierig ist. ;)

Abbas und Tasos haben bereits gezeigt, wie die richtigen Datentypen zu tun (Datumzeit wie Typen)

PS ein Hinweis für Zukunft: wenn Fragen immer zu fragen versuchen, ein Minimal, Complete, and Verifiable example zur Verfügung zu stellen. Im Fall von Pandas Fragen bitte Probe Eingang und Ausgabe Datensätze (5-7 Zeilen in CSV/dict/JSON/Python-Code-Format als Text bieten so man es nutzen könnte, wenn eine Antwort für Sie Codierung).

Dies wird helfen Situationen wie: "Ihr Code funktioniert nicht für mich" oder "es funktioniert nicht mit meinen Daten" zu vermeiden. etc.

+0

Danke MaxU .. Ich habe gerade erst deine erste Aussage herausgefunden - ich bin neu im Spiel :-). Und danke auch für den Rat .. sehr geschätzt – Theant6118

+0

@ Theant6118, immer froh zu helfen :) – MaxU

2

Nicht sicher über die Struktur Ihrer Daten, aber wenn man sie wendet diese Arbeit sollte in Datetime:

import pandas as pd 

df = pd.DataFrame({'date': ['2014/06/01', '2014/01/01', '2014/08/01','2014/09/01','2014/10/01']}) 
df = pd.to_datetime(df['date']) 

df_weekdays = df.dt.dayofweek 
+0

Nein, es funktioniert nicht .. Nicht wirklich sicher, wo ich von hier aus gehen soll. Danke, obwohl – Theant6118

1

Hier ist ein Beispiel für einen Kalender Art der Darstellung zu schaffen mit Pandas, werden Ihnen helfen, mit Manipulation Datum in Pandas:

Output would look like this:

enter image description here

Code

import pandas as pd 
cal = pd.DataFrame(pd.date_range('2016-01-01','2016-01-31'),columns=['DATE']) 
#Refer to https://docs.python.org/2/library/time.html for detailed list of format specifiers 
cal['DAY'] = cal.DATE.dt.strftime('%a') 
cal['day'] = cal.DATE.dt.dayofweek 
cal['WEEK'] = cal.DATE.dt.week 
cal['DT'] = cal.DATE.dt.day 
cal.loc[cal['WEEK'] > 52, 'WEEK'] = 0 
cal.set_index('WEEK',inplace=True) 
calg = cal.groupby(['day','DAY']).apply(lambda x: x.DT) 
calg.unstack(level=[0,1]) 

Output

day 0 1 2 3 4 5 6 
DAY Mon Tue Wed Thu Fri Sat Sun 
WEEK 
0 NaN NaN NaN NaN 1 2 3 
1  4 5 6 7 8 9 10 
2  11 12 13 14 15 16 17 
3  18 19 20 21 22 23 24 
4  25 26 27 28 29 30 31 
Verwandte Themen