#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author : 三十二画生JH
# @Contact : fjhstudent@163.com
# @Software: PyCharm
# @Time : 2024/4/21 21:49
# @Site : 网址
# @File : t_test.py
# @Version :
# ---功能描述
"""
对实验数据做独立样本t检验
"""
# 正文
import pandas as pd
import seaborn as sns
from scipy import stats
import matplotlib.pyplot as plt
# Load data from the Excel file
excel_file = "t_test.xlsx" # Replace with the path to your Excel file
data = pd.read_excel(excel_file)
# Convert all words to lowercase
data.columns = data.columns.str.lower()
# Convert gender variable to lowercase
data['gender'] = data['gender'].map({1: 'male', 2: 'female'})
# Perform independent samples t-test
male_money = data[data['gender'] == 'male']['money']
female_money = data[data['gender'] == 'female']['money']
t_statistic, p_value = stats.ttest_ind(male_money, female_money)
# Create a table for the t-test results
result_table = pd.DataFrame({
'gender': ['male', 'female'],
'mean': [male_money.mean(), female_money.mean()],
'standard deviation': [male_money.std(), female_money.std()],
'sample size': [len(male_money), len(female_money)]
})
# Add t-test results to the table
result_table['t-statistic'] = t_statistic
result_table['p-value'] = p_value
# Print the t-test results table
print("Independent Samples t-test Results:")
print(result_table)
# Create a visually appealing bar comparison chart
plt.figure(figsize=(8, 6))
sns.set(style="whitegrid")
sns.barplot(x='gender', y='money', data=data, ci=None, palette="Set2")
plt.title('Comparison of Money by Gender', fontsize=16)
plt.xlabel('Gender', fontsize=14)
plt.ylabel('Money', fontsize=14)
plt.xticks(fontsize=12)
plt.yticks(fontsize=12)
plt.tight_layout()
# Save the chart as a PNG image
plt.savefig('comparison_chart.png')
# Show the chart
plt.show()