Ich bin neu in Python und Dataframes. Ich frage mich, ob es einen besseren Weg, um so etwas zu tun:Gibt es eine bessere Möglichkeit, Datenrahmen zu indexieren?
df['Datetime'] = df.index
df.reset_index(inplace=True, drop=True)
df['id'] = df.index
df.index = df['Datetime']
df.drop('Datetime', axis=1, inplace=True)
ich eine ID/Index-Spalte müssen, damit ich es in mathematischen Formeln (sin(2*pi*id)
funktioniert besser als sin(2*pi*datetime)
).
Gibt es einen einfacheren (Pythonic) Weg, um es zu erzeugen, ohne Spalten umherbewegen zu müssen?
Update:
print(df.index)
print(df['id'])
Ausgänge:
DatetimeIndex(['2013-01-03', '2013-01-04', '2013-01-07', '2013-01-08',
'2013-01-09', '2013-01-10', '2013-01-11', '2013-01-14',
'2013-01-15', '2013-01-16',
...
'2014-01-20', '2014-01-21', '2014-01-22', '2014-01-23',
'2014-01-24', '2014-01-27', '2014-01-28', '2014-01-29',
'2014-01-30', '2014-01-31'],
dtype='datetime64[ns]', length=282, freq=None, tz='UTC')
2013-01-03 00:00:00+00:00 0
2013-01-04 00:00:00+00:00 1
2013-01-07 00:00:00+00:00 2
2013-01-08 00:00:00+00:00 3
2013-01-09 00:00:00+00:00 4
2013-01-10 00:00:00+00:00 5
2013-01-11 00:00:00+00:00 6
2013-01-14 00:00:00+00:00 7
Sie brauchen nicht zu 'Tropfen/Set' den Index können Sie den Pass nutzen könnten index als param trotzdem so 'np.sin (2 * pi * df.index)' sollte funktionieren, verwenden Sie auch 'set_Index' und' reset_index (drop = True) 'anstelle dessen, was Sie versuchen zu tun – EdChum
Können Sie zur Verfügung stellen einige Beispiel-Input/Output-Daten für das, was du meinst "benutze es in Mathematik atische Formeln "und wie Sie gerade den Prozess durchführen? Es klingt nicht so, als müssten Sie den Index manipulieren, um dies zu tun, aber es ist ohne ein spezifisches Beispiel nicht klar. – root
@EdChum danke, dass du mir von 'set_Index' erzählst; Ich werde das beim nächsten Mal beachten. –