Просто, чтобы дать некоторый контекст, я просто изучаю python и кодирую. Нам дали данные о Титани c. Я ищу в Интернете ответ и не могу точно найти то, что искал. Вот почему я сейчас спрашиваю.
Нам нужно найти коэффициент выживаемости по классам. И затем вернуть вывод данных.
Я хочу создать Dataframe, который имеет класс в качестве имен строк и столбцы «Среднее» и «Количество», означающие среднюю выживаемость каждого класса и количество выживших людей.
Я знаю, что мог бы просто сделать функцию groupby и распечатать ее - что дает мне достаточно хороший вывод. Я признаю, что это возможно, и действительно произвел это изначально. Но мне бы хотелось, чтобы в «таблице» отображался вывод со всем, что хорошо перечислено в столбцах со строками, помеченными классом.
Я понимаю, что мог бы создать новый фрейм данных и перепечатать числа, полученные из моих начальных выходных данных. Но я не думаю, что это достаточно эффективно или может быть легко расширено до больших наборов данных.
Так что это был мой начальный код
Survival_Class_Avg = pd.DataFrame(titanic.groupby(["pclass"])["survived"].mean())
Survival_Class_Count = pd.DataFrame(titanic.groupby(["pclass"])["survived"].count())
Surivval = pd.DataFrame(Survival_Class_Avg.copy().merge(Survival_Class_Count.copy(), how = "left", left_on = "pclass", right_on = "pclass"))
Это таблица, которую он производит
Но я бы хотел добавить имена столбцов «Среднее» и «Количество» (может быть, класс пассажира, в зависимости от того, использую ли я «as_index = false». Но когда я это сделаю, в моих столбцах появится NaN.
Surivval = pd.DataFrame(Survival_Class_Avg.copy().merge(Survival_Class_Count.copy(), how = "left", left_on = "pclass", right_on = "pclass"), columns = ["Average", "Count"])
Это таблица, заполненная NaNs
Я также попробовал:
Survival_Class_Avg = pd.DataFrame(titanic.groupby(["pclass"], as_index = False)["survived"].mean())
Survival_Class_Count = pd.DataFrame(titanic.groupby(["pclass"], as_index = False)["survived"].count())
Surivval = pd.DataFrame(Survival_Class_Avg.copy().merge(Survival_Class_Count.copy(), how = "left", left_on = "pclass", right_on = "pclass"), columns = ["Class","Average", "Count"])
, которая также не сильно меняется.