Панды (и морские пехотинцы). - PullRequest
0 голосов
/ 03 июня 2018

Я изучаю панд (смотрю эти полезные видео ) и в настоящее время играюсь с прицельным столом НЛО

import pandas as pd
ufo = pd.read_csv('https://raw.githubusercontent.com/justmarkham/pandas-videos/master/data/ufo.csv')
ufo.head()

ufo.Time    = pd.to_datetime(ufo.Time)
ufo['Year'] = ufo.Time.dt.year
ufo.head()

Теперь я хотел бы использовать Seaborn, чтобы сделать сцена скрипки каждого штата (по оси X) и года (по оси Y).Следовательно, график показывает плотность частоты наблюдений в любой данный год, в любом данном состоянии.

Если я использую

ufo.State.value_counts()

, я могу получить Серии Панд всех подсчетов для каждого состояния,Но как мне разделить эти данные по годам?Мне как-то нужно получать данные о наблюдениях НЛО в год по штатам?

Я на правильном пути, чтобы создать скрипичный участок Seaborn?Или идти в совершенно неверном направлении?

1 Ответ

0 голосов
/ 03 июня 2018

В соответствии с примером, показанным в violinplot документации следующего примера:

ax = sns.violinplot (x = "day", y = "total_bill"), data = tips)

Вы можете напрямую назначить нужные столбцы по оси x, указав имя столбца в x= и ось y в параметре y=.В следующем коде показана структура данных переменной tips.

In [   ]: tips.head()
Out[   ]: 
   total_bill   tip     sex smoker  day    time  size
0       16.99  1.01  Female     No  Sun  Dinner     2
1       10.34  1.66    Male     No  Sun  Dinner     3
2       21.01  3.50    Male     No  Sun  Dinner     3
3       23.68  3.31    Male     No  Sun  Dinner     2
4       24.59  3.61  Female     No  Sun  Dinner     4

Ваш вопрос заключается в построении графика с использованием violinplot, с осью X для отображения ufo.State и осью Y для отображения ufo.Year,Поэтому я считаю, что ufo.State.value_counts() не требуется, или даже groupby, поскольку данные ufo уже хорошо описаны и соответствуют формату параметров скрипки.

Выможет достичь этого, напрямую поставляя ufo.columnName в x= и y=.См. Код ниже:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

ufo = pd.read_csv('https://raw.githubusercontent.com/justmarkham/pandas-videos/master/data/ufo.csv')

ufo.head()

                   City Colors Reported Shape Reported State  \
0                Ithaca             NaN       TRIANGLE    NY   
1           Willingboro             NaN          OTHER    NJ   
2               Holyoke             NaN           OVAL    CO   
3               Abilene             NaN           DISK    KS   
4  New York Worlds Fair             NaN          LIGHT    NY   

                 Time  Year  
0 1930-06-01 22:00:00  1930  
1 1930-06-30 20:00:00  1930  
2 1931-02-15 14:00:00  1931  
3 1931-06-01 13:00:00  1931  
4 1933-04-18 19:00:00  1933  


ufo.Time    = pd.to_datetime(ufo.Time)
ufo['Year'] = ufo.Time.dt.year

fig, ax = plt.subplots(figsize=(12,8))
ax = sns.violinplot(x=ufo.State, y=ufo.Year)
# ax = sns.violinplot(x='State', y='Year', data=ufo)    # Works the same with the code one line above
plt.show()

Violinplot of UFO sightings

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...