#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
хорошо справляется с ними. Я не понимаю, как читать их в процессе .