Разделение групп по группам и построение графиков на участках - PullRequest
0 голосов
/ 02 мая 2019

У меня есть примерный фрейм данных, который в действительности является фреймом данных, который намного больше и сгруппирован по 12 различным столбцам.Некоторые из групповых меток совпадают.

У меня проблемы с нарезкой кадров данных для построения графика после их группировки с помощью Groupby.

Я хотел бы отобразить ввод и вывод всех групп, имеющих автомобиль в столбце A, и создать легендукоторый помечает их значениями A и B.

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df_test = pd.DataFrame({'A': ['car', 'car', 'car', 'car', 'car', 'car', 'plane', 'plane', 'plane', 'plane', 'plane', 'plane',],
                   'B': ['one','one', 'two', 'two', 'three','three', 'one', 'one', 'two','two',  'three','three',],
                   'Input1': np.random.randn(12),
                   'Output1': np.random.randn(12)})
print(df_test)

grouped = df_test.groupby(['A', 'B'])
fig, ax = plt.subplots()
grouped.plot(x='Input1', y='Output1', ax=ax, legend=False)

Так что здесь я рисую все группы, но на самом деле я хочу только построить группы, которые содержат car, в столбце A

1 Ответ

0 голосов
/ 02 мая 2019

Попробуй это.Приведенный ниже код используется после использования groupby.

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df_test = pd.DataFrame({'A': ['car', 'car', 'car', 'car', 'car', 'car', 'plane', 'plane', 'plane', 'plane', 'plane', 'plane',],
                   'B': ['one','one', 'two', 'two', 'three','three', 'one', 'one', 'two','two',  'three','three',],
                   'Input1': np.random.randn(12),
                   'Output1': np.random.randn(12)})
print(df_test)

grouped = df_test.groupby(['A', 'B'])
grouped=grouped.first().reset_index()
grouped=grouped.loc[grouped['A']=='car']
fig, ax = plt.subplots()
grouped.plot(x='Input1', y='Output1', ax=ax, legend=False)
plt.show()

Если вы хотите отфильтровать только те значения, которые равны 'car' в столбце A, попробуйте следующий код:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df_test = pd.DataFrame({'A': ['car', 'car', 'car', 'car', 'car', 'car', 'plane', 'plane', 'plane', 'plane', 'plane', 'plane',],
                   'B': ['one','one', 'two', 'two', 'three','three', 'one', 'one', 'two','two',  'three','three',],
                   'Input1': np.random.randn(12),
                   'Output1': np.random.randn(12)})
print(df_test)

grouped=df_test.loc[df_test['A']=='car']
fig, ax = plt.subplots()
grouped.plot(x='Input1', y='Output1', ax=ax, legend=False)
plt.show()

Обновление: попробуйте следующий код тоже.

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df_test = pd.DataFrame({'A': ['car', 'car', 'car', 'car', 'car', 'car', 'plane', 'plane', 'plane', 'plane', 'plane', 'plane',],
                   'B': ['one','one', 'two', 'two', 'three','three', 'one', 'one', 'two','two',  'three','three',],
                   'Input1': np.random.randn(12),
                   'Output1': np.random.randn(12)})
print(df_test)

grouped=df_test.loc[df_test['A']=='car']
grouped = grouped.groupby(['A','B'])
fig, ax = plt.subplots()
grouped.plot(x='Input1', y='Output1', ax=ax, legend=True)
plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...