Python, как преобразовать один столбец в датафрейме к дате - PullRequest
0 голосов
/ 28 августа 2018

У меня есть один кадр данных, как показано ниже:

df = pd.DataFrame({'date': [20121231,20130102, 20130105, 20130106, 20130107, 20130108],'price': [25, 163, 235, 36, 40, 82]})

Как сделать df['date'] как date type и 'price' как y-label и 'date' как x-label?

Большое спасибо.

Ответы [ 3 ]

0 голосов
/ 28 августа 2018
import pandas as pd
%matplotlib inline
df = pd.DataFrame({'date': [20121231,20130102, 20130105, 20130106, 20130107, 
                            20130108],'price': [25, 163, 235, 36, 40, 82]})
df['date'] = pd.to_datetime(df['date'], format='%Y%m%d')

df.plot(x='date', y='price')
0 голосов
/ 28 августа 2018

С помощью pandas вы можете напрямую преобразовать столбец date в тип datetime. И тогда вы можете построить с matplotlib. Взгляните на этот ответ , а также этот .

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt 
import matplotlib.dates as dates

df = pd.DataFrame(
    {'date': [20121231, 20130102, 20130105, 20130106, 20130107, 20130108],
    'price': [25, 163, 235, 36, 40, 82]
})

fig, ax = plt.subplots()

# Date plot with matplotlib
ax.plot_date(
    pd.to_datetime(df["date"], format="%Y%m%d"),
    df["price"],
    'v-'
)

# Days and months and the horizontal locators
ax.xaxis.set_minor_locator(dates.DayLocator())
ax.xaxis.set_minor_formatter(dates.DateFormatter('%d\n%a'))
ax.xaxis.set_major_locator(dates.MonthLocator())
ax.xaxis.set_major_formatter(dates.DateFormatter('\n\n\n%b\n%Y'))

ax.xaxis.grid(True, which="minor")
ax.yaxis.grid()
plt.tight_layout()
plt.show()

Результат:

enter image description here

0 голосов
/ 28 августа 2018

Используйте to_datetime с параметром format, отметьте http://strftime.org/:

df['date'] = pd.to_datetime(df['date'], format='%Y%m%d')
print (df)
        date  price
0 2012-12-31     25
1 2013-01-02    163
2 2013-01-05    235
3 2013-01-06     36
4 2013-01-07     40
5 2013-01-08     82

А потом plot:

df.plot(x='date', y='price')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...