График из csv с группировкой panda

#python-3.x #pandas #dataframe #csv #data-analysis

Вопрос:

Если у меня есть csv с 4 столбцами: как я могу усреднить значения одного столбца (x) по среднему значению другого столбца (y), сгруппировав первый с помощью panda? Я должен выполнить цикл для каждого значения первого столбца? Я не уверен в реализации.

Например, если у меня есть csv-файл:

а,1,2,4
а,2,2,5
а,3,2,6
а,4,2,5
б,1,3,2
б,2,3,3
б,3,3,4

и мне нужен график со средним значением a(3-я колонка) и средним значением b(3-я колонка)

Я должен сделать что-то вроде:

 df=pd.reas_csv
x=group_by("values of the 1st column").average()
 

Я бы также попытался построить график kde по 2-му столбцу, который содержит десять строк для каждой группы первого столбца.
Я не понимаю, как группировать данные из файла *csv без определенного заголовка.

Спасибо вам за помощь.

Ответ №1:

Предположим, что ваш фрейм данных выглядит так

 print(df)

   0  1  2  3
0  a  1  2  4
1  a  2  2  5
2  a  3  2  6
3  a  4  2  5
4  b  1  3  2
5  b  2  3  3
6  b  3  3  4
 

Если вы хотите построить график со a средним значением 3-го столбца и b средним значением 3-го столбца, вы можете сделать

 import pandas as pd
import matplotlib.pyplot as plt

df.groupby(0).mean()[3].plot.bar(rot=0)

plt.show()
 

введите описание изображения здесь

Комментарии:

1. Спасибо за вашу помощь! Как вы можете сделать это для большого набора данных с различными переменными, считывая их в процессе?

2. @John Разные переменные не имеют значения, groupby хорошо справляется с ними. Я не понимаю, как читать их в процессе .